{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "046024b5-0308-4af4-a7d0-c60ba308a689",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using `tqdm.autonotebook.tqdm` in notebook mode. Use `tqdm.tqdm` instead to force console mode (e.g. in jupyter console)\n"
     ]
    }
   ],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn import preprocessing\n",
    "\n",
    "import matplotlib\n",
    "import numpy as np\n",
    "import xgboost as xgb\n",
    "import pandas as pd\n",
    "import shap\n",
    "import pickle\n",
    "import matplotlib.pyplot as plt\n",
    "import itertools"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "7ad8bd84-0c6b-48b4-a0b1-e57289bdf7e2",
   "metadata": {},
   "outputs": [],
   "source": [
    "from datetime import datetime"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "8a1d9cf3-712e-40ef-b719-44ce935a6bb9",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[15:42:58] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0fdc6d574b9c0d168-1\\xgboost\\xgboost-ci-windows\\src\\learner.cc:553: \n",
      "  If you are loading a serialized model (like pickle in Python, RDS in R) generated by\n",
      "  older XGBoost, please export the model by calling `Booster.save_model` from that version\n",
      "  first, then load it back in current version. See:\n",
      "\n",
      "    https://xgboost.readthedocs.io/en/latest/tutorials/saving_model.html\n",
      "\n",
      "  for more details about differences between saving model and serializing.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "with open('./data/obj', 'rb') as file:\n",
    "    data = pickle.load(file)\n",
    "clf = data[0]\n",
    "df = data[1].dropna().reset_index().drop('index', axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "b19f58bb-5041-4d0e-a2c9-479543c2ebc8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'Age': [0.42,\n",
       "  8.378,\n",
       "  16.336,\n",
       "  24.293999999999997,\n",
       "  32.251999999999995,\n",
       "  40.209999999999994,\n",
       "  48.16799999999999,\n",
       "  56.12599999999999,\n",
       "  64.08399999999999,\n",
       "  72.04199999999999,\n",
       "  79.99999999999999],\n",
       " 'Fare': [0.0,\n",
       "  51.23292,\n",
       "  102.46584,\n",
       "  153.69876,\n",
       "  204.93168,\n",
       "  256.1646,\n",
       "  307.39752,\n",
       "  358.63043999999996,\n",
       "  409.86335999999994,\n",
       "  461.0962799999999,\n",
       "  512.3291999999999],\n",
       " 'Pclass': array([3, 1, 2], dtype=int64),\n",
       " 'Sex': array([0, 1]),\n",
       " 'SibSp': array([1, 0, 3, 4, 2, 5], dtype=int64),\n",
       " 'Parch': array([0, 1, 2, 5, 3, 4, 6], dtype=int64),\n",
       " 'Cabin': array([8, 2, 4, 6, 3, 0, 1, 5, 7]),\n",
       " 'Embarked': array([2, 0, 1, 3])}"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def create_variable_list_new(min_val, max_val):\n",
    "    delta = (max_val - min_val) / 10\n",
    "    col_vals = []\n",
    "    while min_val <= max_val:\n",
    "        col_vals.append(min_val)\n",
    "        min_val += delta\n",
    "    return col_vals\n",
    "\n",
    "category = {x: df[x].unique() for x in find_category_columns(df)}\n",
    "numeric = getMinMax(df.drop(category.keys(), axis=1))\n",
    "numeric = {key: create_variable_list_new(value[0], value[1])  for key, value in numeric.items()}\n",
    "numeric.update(category)\n",
    "numeric"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "d66cb251-337f-46d9-bfef-1431bb13c435",
   "metadata": {},
   "outputs": [],
   "source": [
    "from more_itertools import nth_product"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "43b771df-c74a-4a7d-9e82-b4cfd61bad6c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "11"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(numeric['Fare'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "4bad765d-a494-4579-9d15-9445c5ae1ef4",
   "metadata": {},
   "outputs": [],
   "source": [
    "df_raw = itertools.product(*numeric.values())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "d4bede53-591f-45a8-9dfe-a2ca9d9d8df4",
   "metadata": {},
   "outputs": [],
   "source": [
    "from shap.explainers import GPUTree"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "b1571111-5650-405a-837b-4e4c0b8985e7",
   "metadata": {},
   "outputs": [
    {
     "ename": "ImportError",
     "evalue": "cannot import name 'TreeExplainer' from 'shap.explainers' (D:\\MIA\\venv\\Lib\\site-packages\\shap\\explainers\\__init__.py)",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mImportError\u001b[0m                               Traceback (most recent call last)",
      "Cell \u001b[1;32mIn[25], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mshap\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mexplainers\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m TreeExplainer\n",
      "\u001b[1;31mImportError\u001b[0m: cannot import name 'TreeExplainer' from 'shap.explainers' (D:\\MIA\\venv\\Lib\\site-packages\\shap\\explainers\\__init__.py)"
     ]
    }
   ],
   "source": [
    "from shap.explainers import TreeExplainer"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "cc2241d8-8aa6-49c1-87cc-1add855fc007",
   "metadata": {},
   "outputs": [],
   "source": [
    "def test_perf_gpu(x):\n",
    "    start = datetime.now()\n",
    "    numeric['Age'] = list(range(0, 100, x))\n",
    "    df_raw = itertools.product(*numeric.values())\n",
    "    columns = numeric.keys()\n",
    "    types = {key: type(value[0]) for key, value in numeric.items()}\n",
    "    test_df = pd.DataFrame(data=df_raw, columns=columns)\n",
    "    test_df = test_df.astype(types)\n",
    "    time_1 = datetime.now() - start\n",
    "    start = datetime.now()\n",
    "    \n",
    "    explainer = GPUTree(clf)\n",
    "    explainer = shap.TreeExplainer(clf)\n",
    "    shap_values = explainer.shap_values(test_df.copy())\n",
    "    time_2 = datetime.now() - start\n",
    "    start = datetime.now()\n",
    "    col_names = []\n",
    "    indexes = []\n",
    "    mean_importance = list(np.mean(np.absolute(shap_values), axis=0))\n",
    "    max_list = sorted(mean_importance)[-5:]\n",
    "    for max_val in max_list:\n",
    "        indexes.append(mean_importance.index(max_val))\n",
    "        col_names.append(test_df.columns[mean_importance.index(max_val)])\n",
    "    time_3 = datetime.now() - start\n",
    "    print(f\"Число строк {test_df['Age'].count()}. Время генерации датасета {time_1}. Время расчёта значений Шепли {time_2}. Время расчёта параметров {time_3}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "a99eca2b-a01b-41fe-b501-bbea0e61fa6b",
   "metadata": {},
   "outputs": [],
   "source": [
    "from tqdm import tqdm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "544335c7-32c9-4025-8187-2d5b4a65ad8f",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 10%|███████████████████▌                                                                                                                                                                               | 1/10 [00:42<06:20, 42.23s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Число строк 997920. Время генерации датасета 0:00:21.180287. Время расчёта значений Шепли 0:00:21.000310. Время расчёта параметров 0:00:00.035057\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 20%|███████████████████████████████████████                                                                                                                                                            | 2/10 [01:33<06:18, 47.29s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Число строк 1197504. Время генерации датасета 0:00:25.466833. Время расчёта значений Шепли 0:00:25.311466. Время расчёта параметров 0:00:00.047912\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 30%|██████████████████████████████████████████████████████████▌                                                                                                                                        | 3/10 [02:27<05:53, 50.57s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Число строк 1297296. Время генерации датасета 0:00:27.565497. Время расчёта значений Шепли 0:00:26.853392. Время расчёта параметров 0:00:00.047266\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 40%|██████████████████████████████████████████████████████████████████████████████                                                                                                                     | 4/10 [03:30<05:32, 55.50s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Число строк 1496880. Время генерации датасета 0:00:31.809328. Время расчёта значений Шепли 0:00:31.181622. Время расчёта параметров 0:00:00.054196\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 50%|█████████████████████████████████████████████████████████████████████████████████████████████████▌                                                                                                 | 5/10 [04:43<05:09, 61.87s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Число строк 1696464. Время генерации датасета 0:00:36.074178. Время расчёта значений Шепли 0:00:37.036756. Время расчёта параметров 0:00:00.044019\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 60%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████                                                                              | 6/10 [06:08<04:38, 69.72s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Число строк 1995840. Время генерации датасета 0:00:42.611595. Время расчёта значений Шепли 0:00:42.273173. Время расчёта параметров 0:00:00.053012\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 70%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌                                                          | 7/10 [07:54<04:04, 81.43s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Число строк 2494800. Время генерации датасета 0:00:53.222855. Время расчёта значений Шепли 0:00:52.229511. Время расчёта параметров 0:00:00.060240\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 80%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏                                      | 8/10 [10:17<03:22, 101.20s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Число строк 3392928. Время генерации датасета 0:01:11.873102. Время расчёта значений Шепли 0:01:11.569413. Время расчёта параметров 0:00:00.070167\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 90%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌                   | 9/10 [13:57<02:18, 138.31s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Число строк 4989600. Время генерации датасета 0:01:47.158584. Время расчёта значений Шепли 0:01:52.598845. Время расчёта параметров 0:00:00.119018\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 10/10 [21:03<00:00, 126.33s/it]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Число строк 9979200. Время генерации датасета 0:03:33.297207. Время расчёта значений Шепли 0:03:32.023818. Время расчёта параметров 0:00:00.233277\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    }
   ],
   "source": [
    "for x in tqdm(range(10, 0, -1)):\n",
    "    test_perf_gpu(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "61207f1b-fe71-4ebc-a7fb-5779f87b7010",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "9148b9bd-1672-400e-8f75-62457671118b",
   "metadata": {},
   "outputs": [],
   "source": [
    "def test_perf(x):\n",
    "    start = datetime.now()\n",
    "    numeric['Age'] = list(range(0, 100, x))\n",
    "    df_raw = itertools.product(*numeric.values())\n",
    "    columns = numeric.keys()\n",
    "    types = {key: type(value[0]) for key, value in numeric.items()}\n",
    "    test_df = pd.DataFrame(data=df_raw, columns=columns)\n",
    "    test_df = test_df.astype(types)\n",
    "    time_1 = datetime.now() - start\n",
    "    start = datetime.now()\n",
    "    \n",
    "    explainer = shap.TreeExplainer(clf)\n",
    "    shap_values = explainer.shap_values(test_df.copy())\n",
    "    time_2 = datetime.now() - start\n",
    "    start = datetime.now()\n",
    "    col_names = []\n",
    "    indexes = []\n",
    "    mean_importance = list(np.mean(np.absolute(shap_values), axis=0))\n",
    "    max_list = sorted(mean_importance)[-5:]\n",
    "    for max_val in max_list:\n",
    "        indexes.append(mean_importance.index(max_val))\n",
    "        col_names.append(test_df.columns[mean_importance.index(max_val)])\n",
    "    time_3 = datetime.now() - start\n",
    "    print(f\"Число строк {test_df['Age'].count()}. Время генерации датасета {time_1}. Время расчёта значений Шепли {time_2}. Время расчёта параметров {time_3}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "4a003842-5ae8-4d15-8867-0381ce940fbe",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "ntree_limit is deprecated, use `iteration_range` or model slicing instead.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Число строк 997920. Время генерации датасета 0:00:01.385256. Время расчёта значений Шепли 0:00:20.369799. Время расчёта параметров 0:00:00.044010\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "ntree_limit is deprecated, use `iteration_range` or model slicing instead.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Число строк 1197504. Время генерации датасета 0:00:01.717313. Время расчёта значений Шепли 0:00:25.149407. Время расчёта параметров 0:00:00.049011\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "ntree_limit is deprecated, use `iteration_range` or model slicing instead.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Число строк 1297296. Время генерации датасета 0:00:01.863157. Время расчёта значений Шепли 0:00:27.779837. Время расчёта параметров 0:00:00.050012\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "ntree_limit is deprecated, use `iteration_range` or model slicing instead.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Число строк 1496880. Время генерации датасета 0:00:02.131728. Время расчёта значений Шепли 0:00:31.388637. Время расчёта параметров 0:00:00.052014\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "ntree_limit is deprecated, use `iteration_range` or model slicing instead.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Число строк 1696464. Время генерации датасета 0:00:02.426782. Время расчёта значений Шепли 0:00:35.500536. Время расчёта параметров 0:00:00.055013\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "ntree_limit is deprecated, use `iteration_range` or model slicing instead.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Число строк 1995840. Время генерации датасета 0:00:02.799845. Время расчёта значений Шепли 0:00:41.759483. Время расчёта параметров 0:00:00.052012\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "ntree_limit is deprecated, use `iteration_range` or model slicing instead.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Число строк 2494800. Время генерации датасета 0:00:03.527980. Время расчёта значений Шепли 0:00:52.261794. Время расчёта параметров 0:00:00.066015\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "ntree_limit is deprecated, use `iteration_range` or model slicing instead.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Число строк 3392928. Время генерации датасета 0:00:04.787366. Время расчёта значений Шепли 0:01:12.228478. Время расчёта параметров 0:00:00.091021\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "ntree_limit is deprecated, use `iteration_range` or model slicing instead.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Число строк 4989600. Время генерации датасета 0:00:06.984350. Время расчёта значений Шепли 0:01:46.737178. Время расчёта параметров 0:00:00.129028\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "ntree_limit is deprecated, use `iteration_range` or model slicing instead.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Число строк 9979200. Время генерации датасета 0:00:14.041254. Время расчёта значений Шепли 0:03:35.274210. Время расчёта параметров 0:00:00.258319\n"
     ]
    }
   ],
   "source": [
    "for x in range(10, 0, -1):\n",
    "    test_perf(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "1d8bc5f5-4094-438e-ba18-6d9900d6b08f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Число строк 997920. Время генерации датасета 0:00:01.385256. Время расчёта значений Шепли 0:00:20.369799. Время расчёта параметров 0:00:00.044010\n",
      "Число строк 1197504. Время генерации датасета 0:00:01.717313. Время расчёта значений Шепли 0:00:25.149407. Время расчёта параметров 0:00:00.049011\n",
      "Число строк 1297296. Время генерации датасета 0:00:01.863157. Время расчёта значений Шепли 0:00:27.779837. Время расчёта параметров 0:00:00.050012\n",
      "Число строк 1496880. Время генерации датасета 0:00:02.131728. Время расчёта значений Шепли 0:00:31.388637. Время расчёта параметров 0:00:00.052014\n",
      "Число строк 1696464. Время генерации датасета 0:00:02.426782. Время расчёта значений Шепли 0:00:35.500536. Время расчёта параметров 0:00:00.055013\n",
      "Число строк 1995840. Время генерации датасета 0:00:02.799845. Время расчёта значений Шепли 0:00:41.759483. Время расчёта параметров 0:00:00.052012\n",
      "Число строк 2494800. Время генерации датасета 0:00:03.527980. Время расчёта значений Шепли 0:00:52.261794. Время расчёта параметров 0:00:00.066015\n",
      "Число строк 3392928. Время генерации датасета 0:00:04.787366. Время расчёта значений Шепли 0:01:12.228478. Время расчёта параметров 0:00:00.091021\n",
      "Число строк 4989600. Время генерации датасета 0:00:06.984350. Время расчёта значений Шепли 0:01:46.737178. Время расчёта параметров 0:00:00.129028\n",
      "Число строк 9979200. Время генерации датасета 0:00:14.041254. Время расчёта значений Шепли 0:03:35.274210. Время расчёта параметров 0:00:00.258319\n",
      "\n"
     ]
    }
   ],
   "source": [
    "a = '''\n",
    "ntree_limit is deprecated, use `iteration_range` or model slicing instead.\n",
    "Число строк 997920. Время генерации датасета 0:00:01.385256. Время расчёта значений Шепли 0:00:20.369799. Время расчёта параметров 0:00:00.044010\n",
    "ntree_limit is deprecated, use `iteration_range` or model slicing instead.\n",
    "Число строк 1197504. Время генерации датасета 0:00:01.717313. Время расчёта значений Шепли 0:00:25.149407. Время расчёта параметров 0:00:00.049011\n",
    "ntree_limit is deprecated, use `iteration_range` or model slicing instead.\n",
    "Число строк 1297296. Время генерации датасета 0:00:01.863157. Время расчёта значений Шепли 0:00:27.779837. Время расчёта параметров 0:00:00.050012\n",
    "ntree_limit is deprecated, use `iteration_range` or model slicing instead.\n",
    "Число строк 1496880. Время генерации датасета 0:00:02.131728. Время расчёта значений Шепли 0:00:31.388637. Время расчёта параметров 0:00:00.052014\n",
    "ntree_limit is deprecated, use `iteration_range` or model slicing instead.\n",
    "Число строк 1696464. Время генерации датасета 0:00:02.426782. Время расчёта значений Шепли 0:00:35.500536. Время расчёта параметров 0:00:00.055013\n",
    "ntree_limit is deprecated, use `iteration_range` or model slicing instead.\n",
    "Число строк 1995840. Время генерации датасета 0:00:02.799845. Время расчёта значений Шепли 0:00:41.759483. Время расчёта параметров 0:00:00.052012\n",
    "ntree_limit is deprecated, use `iteration_range` or model slicing instead.\n",
    "Число строк 2494800. Время генерации датасета 0:00:03.527980. Время расчёта значений Шепли 0:00:52.261794. Время расчёта параметров 0:00:00.066015\n",
    "ntree_limit is deprecated, use `iteration_range` or model slicing instead.\n",
    "Число строк 3392928. Время генерации датасета 0:00:04.787366. Время расчёта значений Шепли 0:01:12.228478. Время расчёта параметров 0:00:00.091021\n",
    "ntree_limit is deprecated, use `iteration_range` or model slicing instead.\n",
    "Число строк 4989600. Время генерации датасета 0:00:06.984350. Время расчёта значений Шепли 0:01:46.737178. Время расчёта параметров 0:00:00.129028\n",
    "ntree_limit is deprecated, use `iteration_range` or model slicing instead.\n",
    "Число строк 9979200. Время генерации датасета 0:00:14.041254. Время расчёта значений Шепли 0:03:35.274210. Время расчёта параметров 0:00:00.258319\n",
    "'''.replace(\"ntree_limit is deprecated, use `iteration_range` or model slicing instead.\\n\", '')\n",
    "print(a)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "3afe3c40-a86c-4ec7-9947-acbe6b05651b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x2d62d754050>]"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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0rp169qOeUH69+9f8d/dunUjNjaW5s2bs3jxYry9vU1MVnPeeecd+vfvT+PGjSuW1Yd96erKysq4++67MQyDt956q9JzY8eOrfjvbt264enpyV//+lemTZvmNNNw33PPPRX/3bVrV7p160br1q1Zs2YNN9xwg4nJas67777LsGHD8PLyqrTcmfbn2Y4fcmY6TXMWo0aNYtmyZXz33Xc0bdr0nOvGxsYCkJqaWhvRakRQUBDt2rUjNTWV8PBwSktLyc7OrrROZmYm4eHh5gS8SAcPHmTlypX8+c9/Pud69WFf/raPfn+F/v/uv/DwcI4dO1bp+fLyck6ePOlU+/i3InLw4EG+/fbb896KPTY2lvLycg4cOFA7AWtAq1atCAkJqfgdrS/78jc//vgjKSkp5/1bhbq7P892/KjKa2t4ePgZ/3Z/e66+Uhn5HcMwGDVqFJ9++imrV6+mZcuW590mOTkZgIiIiBpOV3Py8/PZu3cvERER9OjRAw8PD1atWlXxfEpKCmlpafTu3dvElBfuvffeIzQ0lAEDBpxzvfqwL1u2bEl4eHil/Zebm8v69esr9l/v3r3Jzs5m06ZNFeusXr0ah8NRUcjqut+KyJ49e1i5ciUNGzY87zbJyclYrdbTTms4k0OHDnHixImK39H6sC//1zvvvEOPHj2Iioo677p1bX+e7/hRldfW3r17s3Xr1koF87ei3alTp9oZiBlMvoC2znnooYeMwMBAY82aNcbRo0crHoWFhYZhGEZqaqrx3HPPGRs3bjT2799vfP7550arVq2Mq6++2uTk1fP4448ba9asMfbv32/89NNPRlxcnBESEmIcO3bMMAzDePDBB41mzZoZq1evNjZu3Gj07t3b6N27t8mpL4zdbjeaNWtmjB8/vtJyZ96XeXl5RlJSkpGUlGQAxowZM4ykpKSKT5K89NJLRlBQkPH5558bW7ZsMW677TajZcuWRlFRUcX36NevnxETE2OsX7/eWLt2rdG2bVsjPj7erCGd5lxjLC0tNW699VajadOmRnJycqW/1d8+cbBu3Tpj5syZRnJysrF3717jww8/NBo1amQMHz7c5JFVdq5x5uXlGePGjTMSEhKM/fv3GytXrjS6d+9utG3b1iguLq74HnV9XxrG+X9nDcMwcnJyDB8fH+Ott946bXtn2J/nO34YxvlfW8vLy40uXboYN910k5GcnGysWLHCaNSokTFhwgQzhlRrVEZ+Bzjj47333jMMwzDS0tKMq6++2ggODjZsNpvRpk0b44knnjBycnLMDV5NQ4YMMSIiIgxPT0+jSZMmxpAhQ4zU1NSK54uKioyHH37YaNCggeHj42PccccdxtGjR01MfOG+/vprAzBSUlIqLXfmffndd9+d8fd0xIgRhmH8+vHeiRMnGmFhYYbNZjNuuOGG08Z/4sQJIz4+3vDz8zMCAgKM++67z8jLyzNhNGd2rjHu37//rH+r3333nWEYhrFp0yYjNjbWCAwMNLy8vIyOHTsaU6dOrXQQrwvONc7CwkLjpptuMho1amR4eHgYzZs3Nx544IFKH/s0jLq/Lw3j/L+zhmEYf//73w1vb28jOzv7tO2dYX+e7/hhGFV7bT1w4IDRv39/w9vb2wgJCTEef/xxo6ysrJZHU7sshmEYNfSmi4iIiMh56ZoRERERMZXKiIiIiJhKZURERERMpTIiIiIiplIZEREREVOpjIiIiIipVEZERETEVCojIiIiYiqVERERETGVyoiIiIiYSmVERERETKUyIiIiIqb6fzxVoobUtMrrAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = [997920, 1197504, 1297296, 1496880, 1696464, 1995840, 2494800, 3392928, 4989600, 9979200]\n",
    "y = [20, 25, 27, 31, 35, 41, 52, 72, 106, 180+35]\n",
    "plt.plot(y, x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 178,
   "id": "6cf6be1d-61f9-405c-adf8-0597ea8c030d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[10, 9, 8, 7, 6, 5, 4, 3, 2]"
      ]
     },
     "execution_count": 178,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "list(range(10, 1, -1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "30946089-001b-4149-b08e-8da64d9b342b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Age</th>\n",
       "      <th>Fare</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Sex</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Cabin</th>\n",
       "      <th>Embarked</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Age  Fare  Pclass  Sex  SibSp  Parch  Cabin  Embarked\n",
       "0    0   0.0       3    0      1      0      8         2\n",
       "1    0   0.0       3    0      1      0      8         0\n",
       "2    0   0.0       3    0      1      0      8         1\n",
       "3    0   0.0       3    0      1      0      8         3\n",
       "4    0   0.0       3    0      1      0      2         2"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "columns = numeric.keys()\n",
    "types = {key: type(value[0]) for key, value in numeric.items()}\n",
    "generated = pd.DataFrame(data=df_raw, columns=columns)\n",
    "generated = generated.astype(types)\n",
    "generated.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "577668dd-9bc5-4888-b2d5-9264a2d8e884",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "e903443c-1355-4e62-888d-a0c8e26dcc9c",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "480fd6b8-d9fb-41eb-a225-3e3f362cf870",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,\n",
       "       17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,\n",
       "       34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,\n",
       "       51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,\n",
       "       68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,\n",
       "       85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99])"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "generated.Age.unique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "b70df5c5-13af-4d56-bcb1-1d26aaf49291",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Age         9979200\n",
       "Fare        9979200\n",
       "Pclass      9979200\n",
       "Sex         9979200\n",
       "SibSp       9979200\n",
       "Parch       9979200\n",
       "Cabin       9979200\n",
       "Embarked    9979200\n",
       "dtype: int64"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "generated.count()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "2cef6b2f-f0d4-4cfa-b05a-6b0acd8c3399",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 9979200 entries, 0 to 9979199\n",
      "Columns: 8 entries, Age to Embarked\n",
      "dtypes: float64(1), int32(4), int64(3)\n",
      "memory usage: 456.8 MB\n"
     ]
    }
   ],
   "source": [
    "generated.info(verbose = False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "54a11e5e-2949-412b-908d-6e834bb20345",
   "metadata": {},
   "outputs": [],
   "source": [
    "    cols, indexes = top5_find_by_importance(explainer, data_copy)\n",
    "\n",
    "    res_vals, col_vals = top5_centered_importance(explainer, data_copy, col_name)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "61495cfb-4fc0-4fab-b10c-b1eb4b8f2db6",
   "metadata": {},
   "outputs": [],
   "source": [
    "explainer = shap.TreeExplainer(clf)\n",
    "shap_values = explainer.shap_values(generated.copy())\n",
    "col_names = []\n",
    "indexes = []\n",
    "mean_importance = list(np.mean(np.absolute(shap_values), axis=0))\n",
    "max_list = sorted(mean_importance)[-5:]\n",
    "for max_val in max_list:\n",
    "    indexes.append(mean_importance.index(max_val))\n",
    "    col_names.append(generated.columns[mean_importance.index(max_val)])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "c0604dbe-75fa-4f64-9bb9-d5e94a5e4abc",
   "metadata": {},
   "outputs": [],
   "source": [
    "df = generated.copy()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "id": "4573d558-281c-4966-a0a9-99d8704bd7bf",
   "metadata": {},
   "outputs": [],
   "source": [
    "i = 0\n",
    "for col in df.columns:\n",
    "    df[f'{col}_imp'] = shap_values[:, i]\n",
    "    i += 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "id": "ad2f75af-7a83-449b-9d43-097a3d0d6acf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Age</th>\n",
       "      <th>Fare</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Sex</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Cabin</th>\n",
       "      <th>Embarked</th>\n",
       "      <th>Age_imp</th>\n",
       "      <th>Fare_imp</th>\n",
       "      <th>Pclass_imp</th>\n",
       "      <th>Sex_imp</th>\n",
       "      <th>SibSp_imp</th>\n",
       "      <th>Parch_imp</th>\n",
       "      <th>Cabin_imp</th>\n",
       "      <th>Embarked_imp</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>0.0000</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>2</td>\n",
       "      <td>0.420696</td>\n",
       "      <td>-0.763060</td>\n",
       "      <td>3.695189</td>\n",
       "      <td>0.806548</td>\n",
       "      <td>0.106178</td>\n",
       "      <td>-1.754545</td>\n",
       "      <td>0.013883</td>\n",
       "      <td>-0.024218</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0</td>\n",
       "      <td>0.0000</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>0</td>\n",
       "      <td>0.398679</td>\n",
       "      <td>-0.736817</td>\n",
       "      <td>3.707690</td>\n",
       "      <td>0.800110</td>\n",
       "      <td>0.108225</td>\n",
       "      <td>-2.021857</td>\n",
       "      <td>-0.108471</td>\n",
       "      <td>0.540706</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0</td>\n",
       "      <td>0.0000</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>1</td>\n",
       "      <td>0.405689</td>\n",
       "      <td>-0.773641</td>\n",
       "      <td>3.789224</td>\n",
       "      <td>0.806119</td>\n",
       "      <td>0.098602</td>\n",
       "      <td>-2.142056</td>\n",
       "      <td>0.011811</td>\n",
       "      <td>-0.285514</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0</td>\n",
       "      <td>0.0000</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>3</td>\n",
       "      <td>0.420696</td>\n",
       "      <td>-0.763060</td>\n",
       "      <td>3.695189</td>\n",
       "      <td>0.806548</td>\n",
       "      <td>0.106178</td>\n",
       "      <td>-1.754545</td>\n",
       "      <td>0.013883</td>\n",
       "      <td>-0.024218</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>0.0000</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>0.370713</td>\n",
       "      <td>-0.744991</td>\n",
       "      <td>2.805331</td>\n",
       "      <td>0.774834</td>\n",
       "      <td>0.098831</td>\n",
       "      <td>-2.066766</td>\n",
       "      <td>-1.010673</td>\n",
       "      <td>-0.158700</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9979195</th>\n",
       "      <td>99</td>\n",
       "      <td>512.3292</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>5</td>\n",
       "      <td>3</td>\n",
       "      <td>-0.782420</td>\n",
       "      <td>0.569560</td>\n",
       "      <td>1.290716</td>\n",
       "      <td>0.140581</td>\n",
       "      <td>-0.284586</td>\n",
       "      <td>-1.198655</td>\n",
       "      <td>0.053060</td>\n",
       "      <td>-0.084048</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9979196</th>\n",
       "      <td>99</td>\n",
       "      <td>512.3292</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "      <td>2</td>\n",
       "      <td>-0.781335</td>\n",
       "      <td>0.545396</td>\n",
       "      <td>1.334466</td>\n",
       "      <td>0.141142</td>\n",
       "      <td>-0.283658</td>\n",
       "      <td>-1.058557</td>\n",
       "      <td>0.002762</td>\n",
       "      <td>-0.038004</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9979197</th>\n",
       "      <td>99</td>\n",
       "      <td>512.3292</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "      <td>0</td>\n",
       "      <td>-0.739091</td>\n",
       "      <td>0.555135</td>\n",
       "      <td>1.497834</td>\n",
       "      <td>0.141403</td>\n",
       "      <td>-0.262675</td>\n",
       "      <td>-1.585974</td>\n",
       "      <td>-0.064732</td>\n",
       "      <td>0.562602</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9979198</th>\n",
       "      <td>99</td>\n",
       "      <td>512.3292</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "      <td>1</td>\n",
       "      <td>-0.744387</td>\n",
       "      <td>0.609449</td>\n",
       "      <td>1.419623</td>\n",
       "      <td>0.168310</td>\n",
       "      <td>-0.283839</td>\n",
       "      <td>-1.702721</td>\n",
       "      <td>0.000691</td>\n",
       "      <td>-0.167970</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9979199</th>\n",
       "      <td>99</td>\n",
       "      <td>512.3292</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "      <td>3</td>\n",
       "      <td>-0.781335</td>\n",
       "      <td>0.545396</td>\n",
       "      <td>1.334466</td>\n",
       "      <td>0.141142</td>\n",
       "      <td>-0.283658</td>\n",
       "      <td>-1.058557</td>\n",
       "      <td>0.002762</td>\n",
       "      <td>-0.038004</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>9979200 rows × 16 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "         Age      Fare  Pclass  Sex  SibSp  Parch  Cabin  Embarked   Age_imp  \\\n",
       "0          0    0.0000       3    0      1      0      8         2  0.420696   \n",
       "1          0    0.0000       3    0      1      0      8         0  0.398679   \n",
       "2          0    0.0000       3    0      1      0      8         1  0.405689   \n",
       "3          0    0.0000       3    0      1      0      8         3  0.420696   \n",
       "4          0    0.0000       3    0      1      0      2         2  0.370713   \n",
       "...      ...       ...     ...  ...    ...    ...    ...       ...       ...   \n",
       "9979195   99  512.3292       2    1      5      6      5         3 -0.782420   \n",
       "9979196   99  512.3292       2    1      5      6      7         2 -0.781335   \n",
       "9979197   99  512.3292       2    1      5      6      7         0 -0.739091   \n",
       "9979198   99  512.3292       2    1      5      6      7         1 -0.744387   \n",
       "9979199   99  512.3292       2    1      5      6      7         3 -0.781335   \n",
       "\n",
       "         Fare_imp  Pclass_imp   Sex_imp  SibSp_imp  Parch_imp  Cabin_imp  \\\n",
       "0       -0.763060    3.695189  0.806548   0.106178  -1.754545   0.013883   \n",
       "1       -0.736817    3.707690  0.800110   0.108225  -2.021857  -0.108471   \n",
       "2       -0.773641    3.789224  0.806119   0.098602  -2.142056   0.011811   \n",
       "3       -0.763060    3.695189  0.806548   0.106178  -1.754545   0.013883   \n",
       "4       -0.744991    2.805331  0.774834   0.098831  -2.066766  -1.010673   \n",
       "...           ...         ...       ...        ...        ...        ...   \n",
       "9979195  0.569560    1.290716  0.140581  -0.284586  -1.198655   0.053060   \n",
       "9979196  0.545396    1.334466  0.141142  -0.283658  -1.058557   0.002762   \n",
       "9979197  0.555135    1.497834  0.141403  -0.262675  -1.585974  -0.064732   \n",
       "9979198  0.609449    1.419623  0.168310  -0.283839  -1.702721   0.000691   \n",
       "9979199  0.545396    1.334466  0.141142  -0.283658  -1.058557   0.002762   \n",
       "\n",
       "         Embarked_imp  \n",
       "0           -0.024218  \n",
       "1            0.540706  \n",
       "2           -0.285514  \n",
       "3           -0.024218  \n",
       "4           -0.158700  \n",
       "...               ...  \n",
       "9979195     -0.084048  \n",
       "9979196     -0.038004  \n",
       "9979197      0.562602  \n",
       "9979198     -0.167970  \n",
       "9979199     -0.038004  \n",
       "\n",
       "[9979200 rows x 16 columns]"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "id": "463d9324-9dd7-487c-9a09-0f430649b408",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 345.6x345.6 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.matshow(df.corr())\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "id": "f8777a20-8542-4711-951c-3a5a80afbbed",
   "metadata": {
    "tags": []
   },
   "outputs": [],
   "source": [
    "grouped = df.groupby(\"Age\", axis=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "id": "0e645d6a-21eb-4c2c-a722-7f7833f28f52",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr:last-of-type th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th colspan=\"8\" halign=\"left\">Fare</th>\n",
       "      <th colspan=\"2\" halign=\"left\">Pclass</th>\n",
       "      <th>...</th>\n",
       "      <th colspan=\"2\" halign=\"left\">Cabin_imp</th>\n",
       "      <th colspan=\"8\" halign=\"left\">Embarked_imp</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>mean</th>\n",
       "      <th>std</th>\n",
       "      <th>min</th>\n",
       "      <th>25%</th>\n",
       "      <th>50%</th>\n",
       "      <th>75%</th>\n",
       "      <th>max</th>\n",
       "      <th>count</th>\n",
       "      <th>mean</th>\n",
       "      <th>...</th>\n",
       "      <th>75%</th>\n",
       "      <th>max</th>\n",
       "      <th>count</th>\n",
       "      <th>mean</th>\n",
       "      <th>std</th>\n",
       "      <th>min</th>\n",
       "      <th>25%</th>\n",
       "      <th>50%</th>\n",
       "      <th>75%</th>\n",
       "      <th>max</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Age</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>99792.0</td>\n",
       "      <td>256.1646</td>\n",
       "      <td>162.01353</td>\n",
       "      <td>0.0</td>\n",
       "      <td>102.46584</td>\n",
       "      <td>256.1646</td>\n",
       "      <td>409.86336</td>\n",
       "      <td>512.3292</td>\n",
       "      <td>99792.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.166245</td>\n",
       "      <td>1.415961</td>\n",
       "      <td>99792.0</td>\n",
       "      <td>0.065914</td>\n",
       "      <td>0.383027</td>\n",
       "      <td>-0.426522</td>\n",
       "      <td>-0.182361</td>\n",
       "      <td>-0.078378</td>\n",
       "      <td>0.110711</td>\n",
       "      <td>0.997595</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>99792.0</td>\n",
       "      <td>256.1646</td>\n",
       "      <td>162.01353</td>\n",
       "      <td>0.0</td>\n",
       "      <td>102.46584</td>\n",
       "      <td>256.1646</td>\n",
       "      <td>409.86336</td>\n",
       "      <td>512.3292</td>\n",
       "      <td>99792.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.166245</td>\n",
       "      <td>1.415961</td>\n",
       "      <td>99792.0</td>\n",
       "      <td>0.065914</td>\n",
       "      <td>0.383027</td>\n",
       "      <td>-0.426522</td>\n",
       "      <td>-0.182361</td>\n",
       "      <td>-0.078378</td>\n",
       "      <td>0.110711</td>\n",
       "      <td>0.997595</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>99792.0</td>\n",
       "      <td>256.1646</td>\n",
       "      <td>162.01353</td>\n",
       "      <td>0.0</td>\n",
       "      <td>102.46584</td>\n",
       "      <td>256.1646</td>\n",
       "      <td>409.86336</td>\n",
       "      <td>512.3292</td>\n",
       "      <td>99792.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.165255</td>\n",
       "      <td>1.414971</td>\n",
       "      <td>99792.0</td>\n",
       "      <td>0.076686</td>\n",
       "      <td>0.375766</td>\n",
       "      <td>-0.408962</td>\n",
       "      <td>-0.166122</td>\n",
       "      <td>-0.064069</td>\n",
       "      <td>0.122509</td>\n",
       "      <td>0.983070</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>99792.0</td>\n",
       "      <td>256.1646</td>\n",
       "      <td>162.01353</td>\n",
       "      <td>0.0</td>\n",
       "      <td>102.46584</td>\n",
       "      <td>256.1646</td>\n",
       "      <td>409.86336</td>\n",
       "      <td>512.3292</td>\n",
       "      <td>99792.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.123495</td>\n",
       "      <td>1.405511</td>\n",
       "      <td>99792.0</td>\n",
       "      <td>0.086925</td>\n",
       "      <td>0.398651</td>\n",
       "      <td>-0.392770</td>\n",
       "      <td>-0.161253</td>\n",
       "      <td>-0.095363</td>\n",
       "      <td>0.120978</td>\n",
       "      <td>1.012388</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>99792.0</td>\n",
       "      <td>256.1646</td>\n",
       "      <td>162.01353</td>\n",
       "      <td>0.0</td>\n",
       "      <td>102.46584</td>\n",
       "      <td>256.1646</td>\n",
       "      <td>409.86336</td>\n",
       "      <td>512.3292</td>\n",
       "      <td>99792.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.123495</td>\n",
       "      <td>1.405511</td>\n",
       "      <td>99792.0</td>\n",
       "      <td>0.086925</td>\n",
       "      <td>0.398651</td>\n",
       "      <td>-0.392770</td>\n",
       "      <td>-0.161253</td>\n",
       "      <td>-0.095363</td>\n",
       "      <td>0.120978</td>\n",
       "      <td>1.012388</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>95</th>\n",
       "      <td>99792.0</td>\n",
       "      <td>256.1646</td>\n",
       "      <td>162.01353</td>\n",
       "      <td>0.0</td>\n",
       "      <td>102.46584</td>\n",
       "      <td>256.1646</td>\n",
       "      <td>409.86336</td>\n",
       "      <td>512.3292</td>\n",
       "      <td>99792.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.123495</td>\n",
       "      <td>1.405511</td>\n",
       "      <td>99792.0</td>\n",
       "      <td>0.086925</td>\n",
       "      <td>0.398651</td>\n",
       "      <td>-0.392770</td>\n",
       "      <td>-0.161253</td>\n",
       "      <td>-0.095363</td>\n",
       "      <td>0.120978</td>\n",
       "      <td>1.012388</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>96</th>\n",
       "      <td>99792.0</td>\n",
       "      <td>256.1646</td>\n",
       "      <td>162.01353</td>\n",
       "      <td>0.0</td>\n",
       "      <td>102.46584</td>\n",
       "      <td>256.1646</td>\n",
       "      <td>409.86336</td>\n",
       "      <td>512.3292</td>\n",
       "      <td>99792.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.123495</td>\n",
       "      <td>1.405511</td>\n",
       "      <td>99792.0</td>\n",
       "      <td>0.086925</td>\n",
       "      <td>0.398651</td>\n",
       "      <td>-0.392770</td>\n",
       "      <td>-0.161253</td>\n",
       "      <td>-0.095363</td>\n",
       "      <td>0.120978</td>\n",
       "      <td>1.012388</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>97</th>\n",
       "      <td>99792.0</td>\n",
       "      <td>256.1646</td>\n",
       "      <td>162.01353</td>\n",
       "      <td>0.0</td>\n",
       "      <td>102.46584</td>\n",
       "      <td>256.1646</td>\n",
       "      <td>409.86336</td>\n",
       "      <td>512.3292</td>\n",
       "      <td>99792.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.123495</td>\n",
       "      <td>1.405511</td>\n",
       "      <td>99792.0</td>\n",
       "      <td>0.086925</td>\n",
       "      <td>0.398651</td>\n",
       "      <td>-0.392770</td>\n",
       "      <td>-0.161253</td>\n",
       "      <td>-0.095363</td>\n",
       "      <td>0.120978</td>\n",
       "      <td>1.012388</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>98</th>\n",
       "      <td>99792.0</td>\n",
       "      <td>256.1646</td>\n",
       "      <td>162.01353</td>\n",
       "      <td>0.0</td>\n",
       "      <td>102.46584</td>\n",
       "      <td>256.1646</td>\n",
       "      <td>409.86336</td>\n",
       "      <td>512.3292</td>\n",
       "      <td>99792.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.123495</td>\n",
       "      <td>1.405511</td>\n",
       "      <td>99792.0</td>\n",
       "      <td>0.086925</td>\n",
       "      <td>0.398651</td>\n",
       "      <td>-0.392770</td>\n",
       "      <td>-0.161253</td>\n",
       "      <td>-0.095363</td>\n",
       "      <td>0.120978</td>\n",
       "      <td>1.012388</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>99</th>\n",
       "      <td>99792.0</td>\n",
       "      <td>256.1646</td>\n",
       "      <td>162.01353</td>\n",
       "      <td>0.0</td>\n",
       "      <td>102.46584</td>\n",
       "      <td>256.1646</td>\n",
       "      <td>409.86336</td>\n",
       "      <td>512.3292</td>\n",
       "      <td>99792.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>...</td>\n",
       "      <td>0.123495</td>\n",
       "      <td>1.405511</td>\n",
       "      <td>99792.0</td>\n",
       "      <td>0.086925</td>\n",
       "      <td>0.398651</td>\n",
       "      <td>-0.392770</td>\n",
       "      <td>-0.161253</td>\n",
       "      <td>-0.095363</td>\n",
       "      <td>0.120978</td>\n",
       "      <td>1.012388</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>100 rows × 120 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        Fare                                                            \\\n",
       "       count      mean        std  min        25%       50%        75%   \n",
       "Age                                                                      \n",
       "0    99792.0  256.1646  162.01353  0.0  102.46584  256.1646  409.86336   \n",
       "1    99792.0  256.1646  162.01353  0.0  102.46584  256.1646  409.86336   \n",
       "2    99792.0  256.1646  162.01353  0.0  102.46584  256.1646  409.86336   \n",
       "3    99792.0  256.1646  162.01353  0.0  102.46584  256.1646  409.86336   \n",
       "4    99792.0  256.1646  162.01353  0.0  102.46584  256.1646  409.86336   \n",
       "..       ...       ...        ...  ...        ...       ...        ...   \n",
       "95   99792.0  256.1646  162.01353  0.0  102.46584  256.1646  409.86336   \n",
       "96   99792.0  256.1646  162.01353  0.0  102.46584  256.1646  409.86336   \n",
       "97   99792.0  256.1646  162.01353  0.0  102.46584  256.1646  409.86336   \n",
       "98   99792.0  256.1646  162.01353  0.0  102.46584  256.1646  409.86336   \n",
       "99   99792.0  256.1646  162.01353  0.0  102.46584  256.1646  409.86336   \n",
       "\n",
       "                Pclass       ... Cabin_imp           Embarked_imp            \\\n",
       "          max    count mean  ...       75%       max        count      mean   \n",
       "Age                          ...                                              \n",
       "0    512.3292  99792.0  2.0  ...  0.166245  1.415961      99792.0  0.065914   \n",
       "1    512.3292  99792.0  2.0  ...  0.166245  1.415961      99792.0  0.065914   \n",
       "2    512.3292  99792.0  2.0  ...  0.165255  1.414971      99792.0  0.076686   \n",
       "3    512.3292  99792.0  2.0  ...  0.123495  1.405511      99792.0  0.086925   \n",
       "4    512.3292  99792.0  2.0  ...  0.123495  1.405511      99792.0  0.086925   \n",
       "..        ...      ...  ...  ...       ...       ...          ...       ...   \n",
       "95   512.3292  99792.0  2.0  ...  0.123495  1.405511      99792.0  0.086925   \n",
       "96   512.3292  99792.0  2.0  ...  0.123495  1.405511      99792.0  0.086925   \n",
       "97   512.3292  99792.0  2.0  ...  0.123495  1.405511      99792.0  0.086925   \n",
       "98   512.3292  99792.0  2.0  ...  0.123495  1.405511      99792.0  0.086925   \n",
       "99   512.3292  99792.0  2.0  ...  0.123495  1.405511      99792.0  0.086925   \n",
       "\n",
       "                                                                 \n",
       "          std       min       25%       50%       75%       max  \n",
       "Age                                                              \n",
       "0    0.383027 -0.426522 -0.182361 -0.078378  0.110711  0.997595  \n",
       "1    0.383027 -0.426522 -0.182361 -0.078378  0.110711  0.997595  \n",
       "2    0.375766 -0.408962 -0.166122 -0.064069  0.122509  0.983070  \n",
       "3    0.398651 -0.392770 -0.161253 -0.095363  0.120978  1.012388  \n",
       "4    0.398651 -0.392770 -0.161253 -0.095363  0.120978  1.012388  \n",
       "..        ...       ...       ...       ...       ...       ...  \n",
       "95   0.398651 -0.392770 -0.161253 -0.095363  0.120978  1.012388  \n",
       "96   0.398651 -0.392770 -0.161253 -0.095363  0.120978  1.012388  \n",
       "97   0.398651 -0.392770 -0.161253 -0.095363  0.120978  1.012388  \n",
       "98   0.398651 -0.392770 -0.161253 -0.095363  0.120978  1.012388  \n",
       "99   0.398651 -0.392770 -0.161253 -0.095363  0.120978  1.012388  \n",
       "\n",
       "[100 rows x 120 columns]"
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "grouped.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "id": "e5d9c12a-65b9-42ca-a3ed-689df3bda07b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Sex_imp</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>99792.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>0.302742</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>0.208090</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>0.032016</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>0.133871</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>0.358354</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>0.421715</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>0.878685</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Sex_imp\n",
       "count  99792.000000\n",
       "mean       0.302742\n",
       "std        0.208090\n",
       "min        0.032016\n",
       "25%        0.133871\n",
       "50%        0.358354\n",
       "75%        0.421715\n",
       "max        0.878685"
      ]
     },
     "execution_count": 106,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[df['Age']==23][['Sex_imp']].describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "id": "e689352f-c39e-45d5-8c2b-1ab044866dc2",
   "metadata": {},
   "outputs": [],
   "source": [
    "grouped_sex = df[df['Age']==23][['Sex_imp']].groupby(\"Sex_imp\", axis=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "965e7682-0976-462f-b1e8-3d8c89725a62",
   "metadata": {},
   "outputs": [],
   "source": [
    "res = {}\n",
    "for x, y in grouped_sex.groups.items():\n",
    "    print(x, len(y))\n",
    "    if len(y) > 200:\n",
    "        res[x] = len(y)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "id": "1b2f1fd9-3e94-4d7e-a4dc-d7013fda32e9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{0.03201553598046303: 840,\n",
       " 0.03835226967930794: 1680,\n",
       " 0.048371244221925735: 210,\n",
       " 0.0540972463786602: 840,\n",
       " 0.054707977920770645: 420,\n",
       " 0.0575481615960598: 2520,\n",
       " 0.060433994978666306: 1680,\n",
       " 0.0638849064707756: 5040,\n",
       " 0.06552012264728546: 840,\n",
       " 0.0704529657959938: 210,\n",
       " 0.0739038810133934: 630,\n",
       " 0.07483377307653427: 210,\n",
       " 0.07678971439599991: 420,\n",
       " 0.0802406296133995: 1260,\n",
       " 0.08187583833932877: 210,\n",
       " 0.08760183304548264: 840,\n",
       " 0.09105274826288223: 2520,\n",
       " 0.09691547602415085: 210,\n",
       " 0.10036639124155045: 630,\n",
       " 0.10395754128694534: 210,\n",
       " 0.10486464947462082: 420,\n",
       " 0.10740845650434494: 630,\n",
       " 0.10833834856748581: 210,\n",
       " 0.126946359872818: 420,\n",
       " 0.1303972750902176: 1260,\n",
       " 0.13042005896568298: 210,\n",
       " 0.1338709592819214: 630,\n",
       " 0.13424378633499146: 840,\n",
       " 0.14058052003383636: 1680,\n",
       " 0.14114218950271606: 5040,\n",
       " 0.1414027214050293: 2520,\n",
       " 0.15059949457645416: 210,\n",
       " 0.15693624317646027: 420,\n",
       " 0.15749789774417877: 1260,\n",
       " 0.157758429646492: 630,\n",
       " 0.167748361825943: 840,\n",
       " 0.1683100163936615: 2520,\n",
       " 0.17706197500228882: 210,\n",
       " 0.1841040700674057: 210,\n",
       " 0.18422091007232666: 630,\n",
       " 0.1846657246351242: 630,\n",
       " 0.20709288120269775: 420,\n",
       " 0.20765453577041626: 1260,\n",
       " 0.21056658029556274: 210,\n",
       " 0.21112823486328125: 630,\n",
       " 0.33862438797950745: 630,\n",
       " 0.3388840854167938: 1260,\n",
       " 0.3408585786819458: 210,\n",
       " 0.3411182761192322: 420,\n",
       " 0.3431929051876068: 630,\n",
       " 0.34542709589004517: 210,\n",
       " 0.3551458716392517: 630,\n",
       " 0.35738006234169006: 210,\n",
       " 0.3583541810512543: 2520,\n",
       " 0.3597143590450287: 630,\n",
       " 0.3605883717536926: 840,\n",
       " 0.36194854974746704: 210,\n",
       " 0.36292266845703125: 2520,\n",
       " 0.3651568591594696: 840,\n",
       " 0.3747434616088867: 1260,\n",
       " 0.3753345012664795: 210,\n",
       " 0.37559419870376587: 420,\n",
       " 0.3769776523113251: 420,\n",
       " 0.3779517710208893: 5040,\n",
       " 0.37990301847457886: 210,\n",
       " 0.38018596172332764: 1680,\n",
       " 0.39185598492622375: 210,\n",
       " 0.3950642943382263: 840,\n",
       " 0.39642447233200073: 210,\n",
       " 0.3996327817440033: 840,\n",
       " 0.40290963649749756: 630,\n",
       " 0.4030570387840271: 210,\n",
       " 0.40316933393478394: 1260,\n",
       " 0.4033167362213135: 420,\n",
       " 0.40519386529922485: 630,\n",
       " 0.40762555599212646: 210,\n",
       " 0.41145357489585876: 420,\n",
       " 0.41466188430786133: 1680,\n",
       " 0.41943109035491943: 630,\n",
       " 0.41957852244377136: 210,\n",
       " 0.4217153489589691: 630,\n",
       " 0.422639399766922: 2520,\n",
       " 0.4227868318557739: 840,\n",
       " 0.42414700984954834: 210,\n",
       " 0.4249236583709717: 2520,\n",
       " 0.4273553192615509: 840,\n",
       " 0.43902871012687683: 1260,\n",
       " 0.43917611241340637: 420,\n",
       " 0.4422370195388794: 5040,\n",
       " 0.44238442182540894: 1680,\n",
       " 0.6905118227005005: 252,\n",
       " 0.7480574250221252: 252,\n",
       " 0.7498038411140442: 504,\n",
       " 0.7543344497680664: 252,\n",
       " 0.765401303768158: 504,\n",
       " 0.7682991027832031: 252,\n",
       " 0.8005660176277161: 252,\n",
       " 0.8104732632637024: 252,\n",
       " 0.8164817094802856: 252,\n",
       " 0.8182281255722046: 504,\n",
       " 0.8399732708930969: 504,\n",
       " 0.8428710103034973: 252}"
      ]
     },
     "execution_count": 134,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "res"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3f037cc4-eb1c-4480-9246-5f6439eb1a7d",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "id": "00a0addc-5dd2-4066-a5eb-1db93cfcb992",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.81501985, 0.807265  , 0.81327343, 0.7833057 , 0.7878363 ,\n",
       "       0.7815593 , 0.75201195, 0.75654256, 0.75026554, 0.74659556,\n",
       "       0.75112617, 0.74484915, 0.81537557, 0.8199062 , 0.8136291 ,\n",
       "       0.7969634 , 0.7909221 , 0.79693055, 0.7652492 , 0.77149343,\n",
       "       0.7652164 , 0.73395544, 0.7401997 , 0.73392266, 0.72853905,\n",
       "       0.7347833 , 0.72850627, 0.79731905, 0.8035633 , 0.7972862 ,\n",
       "       0.8182281 , 0.81047326, 0.8164817 , 0.786514  , 0.7910446 ,\n",
       "       0.78476757, 0.75522023, 0.75975084, 0.7534738 , 0.74980384,\n",
       "       0.75433445, 0.7480574 , 0.81858385, 0.82311445, 0.8168374 ,\n",
       "       0.856329  , 0.8169218 , 0.85922676, 0.75622445, 0.681335  ,\n",
       "       0.75912225, 0.7736478 , 0.6987583 , 0.7765456 , 0.78175706,\n",
       "       0.7068676 , 0.78465486, 0.8549594 , 0.7800699 , 0.85785717,\n",
       "       0.8778865 , 0.8363797 , 0.8786847 , 0.77778196, 0.7007928 ,\n",
       "       0.7785801 , 0.7952053 , 0.7182161 , 0.79600346, 0.80331457,\n",
       "       0.7263254 , 0.80411273, 0.8765169 , 0.7995278 , 0.8773151 ,\n",
       "       0.8399733 , 0.800566  , 0.842871  , 0.7398687 , 0.6649792 ,\n",
       "       0.7427665 , 0.75729203, 0.68240255, 0.76018983, 0.7654013 ,\n",
       "       0.6905118 , 0.7682991 , 0.8386037 , 0.76371413, 0.8415014 ,\n",
       "       0.4390287 , 0.42171535, 0.4194311 , 0.41145357, 0.39642447,\n",
       "       0.39185598, 0.37697765, 0.36194855, 0.35738006, 0.37474346,\n",
       "       0.35971436, 0.35514587, 0.4391761 , 0.424147  , 0.41957852,\n",
       "       0.40316933, 0.40519387, 0.40290964, 0.3755942 , 0.37990302,\n",
       "       0.3753345 , 0.34111828, 0.3454271 , 0.34085858, 0.3388841 ,\n",
       "       0.3431929 , 0.3386244 , 0.40331674, 0.40762556, 0.40305704,\n",
       "       0.44223702, 0.42492366, 0.4226394 , 0.41466188, 0.39963278,\n",
       "       0.3950643 , 0.38018596, 0.36515686, 0.36058837, 0.37795177,\n",
       "       0.36292267, 0.35835418, 0.44238442, 0.42735532, 0.42278683,\n",
       "       0.1574979 , 0.15775843, 0.18466572, 0.05470798, 0.04837124,\n",
       "       0.08187584, 0.07678971, 0.07045297, 0.10395754, 0.08024063,\n",
       "       0.07390388, 0.10740846, 0.15693624, 0.1505995 , 0.18410407,\n",
       "       0.20765454, 0.18422091, 0.21112823, 0.10486465, 0.07483377,\n",
       "       0.10833835, 0.12694636, 0.09691548, 0.13042006, 0.13039728,\n",
       "       0.10036639, 0.13387096, 0.20709288, 0.17706198, 0.21056658,\n",
       "       0.14114219, 0.14140272, 0.16831002, 0.03835227, 0.03201554,\n",
       "       0.06552012, 0.06043399, 0.05409725, 0.08760183, 0.06388491,\n",
       "       0.05754816, 0.09105275, 0.14058052, 0.13424379, 0.16774836],\n",
       "      dtype=float32)"
      ]
     },
     "execution_count": 114,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df[df['Age']==23]['Sex_imp'].unique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "id": "e4d75297-6948-419d-8af4-aa3e77aeaa62",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[3.6951895 3.7076902 3.7892237 ... 1.4978341 1.4196235 1.3344656]\n"
     ]
    }
   ],
   "source": [
    "print(shap_values[:, 2])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "id": "d0a9c51d-a57f-45b8-9433-45deacad3201",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Fare</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Sex</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Cabin</th>\n",
       "      <th>Embarked</th>\n",
       "      <th>Age_imp</th>\n",
       "      <th>Fare_imp</th>\n",
       "      <th>Pclass_imp</th>\n",
       "      <th>Sex_imp</th>\n",
       "      <th>SibSp_imp</th>\n",
       "      <th>Parch_imp</th>\n",
       "      <th>Cabin_imp</th>\n",
       "      <th>Embarked_imp</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Age</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>1.026710</td>\n",
       "      <td>1.250064</td>\n",
       "      <td>0.843890</td>\n",
       "      <td>0.342086</td>\n",
       "      <td>-0.162407</td>\n",
       "      <td>-1.616896</td>\n",
       "      <td>0.013324</td>\n",
       "      <td>0.065914</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>1.026710</td>\n",
       "      <td>1.250064</td>\n",
       "      <td>0.843890</td>\n",
       "      <td>0.342086</td>\n",
       "      <td>-0.162407</td>\n",
       "      <td>-1.616896</td>\n",
       "      <td>0.013324</td>\n",
       "      <td>0.065914</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>0.993500</td>\n",
       "      <td>1.250064</td>\n",
       "      <td>0.859432</td>\n",
       "      <td>0.341956</td>\n",
       "      <td>-0.161329</td>\n",
       "      <td>-1.611428</td>\n",
       "      <td>0.024289</td>\n",
       "      <td>0.076686</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>36</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>37</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>38</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>40</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>41</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>42</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>43</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>44</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>45</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>46</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>47</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>48</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>49</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.674899</td>\n",
       "      <td>0.585389</td>\n",
       "      <td>1.155444</td>\n",
       "      <td>0.302742</td>\n",
       "      <td>-0.141805</td>\n",
       "      <td>-1.261531</td>\n",
       "      <td>0.016674</td>\n",
       "      <td>0.086925</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         Fare  Pclass  Sex  SibSp  Parch  Cabin  Embarked   Age_imp  Fare_imp  \\\n",
       "Age                                                                             \n",
       "0    256.1646     2.0  0.5    2.5    3.0    4.0       1.5  1.026710  1.250064   \n",
       "1    256.1646     2.0  0.5    2.5    3.0    4.0       1.5  1.026710  1.250064   \n",
       "2    256.1646     2.0  0.5    2.5    3.0    4.0       1.5  0.993500  1.250064   \n",
       "3    256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "4    256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "5    256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "6    256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "7    256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "8    256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "9    256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "10   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "11   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "12   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "13   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "14   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "15   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "16   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "17   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "18   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "19   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "20   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "21   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "22   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "23   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "24   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "25   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "26   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "27   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "28   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "29   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "30   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "31   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "32   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "33   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "34   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "35   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "36   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "37   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "38   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "39   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "40   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "41   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "42   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "43   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "44   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "45   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "46   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "47   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "48   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "49   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.674899  0.585389   \n",
       "\n",
       "     Pclass_imp   Sex_imp  SibSp_imp  Parch_imp  Cabin_imp  Embarked_imp  \n",
       "Age                                                                       \n",
       "0      0.843890  0.342086  -0.162407  -1.616896   0.013324      0.065914  \n",
       "1      0.843890  0.342086  -0.162407  -1.616896   0.013324      0.065914  \n",
       "2      0.859432  0.341956  -0.161329  -1.611428   0.024289      0.076686  \n",
       "3      1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "4      1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "5      1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "6      1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "7      1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "8      1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "9      1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "10     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "11     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "12     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "13     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "14     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "15     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "16     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "17     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "18     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "19     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "20     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "21     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "22     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "23     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "24     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "25     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "26     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "27     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "28     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "29     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "30     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "31     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "32     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "33     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "34     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "35     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "36     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "37     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "38     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "39     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "40     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "41     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "42     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "43     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "44     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "45     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "46     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "47     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "48     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  \n",
       "49     1.155444  0.302742  -0.141805  -1.261531   0.016674      0.086925  "
      ]
     },
     "execution_count": 90,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "grouped.mean().head(50)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "id": "f9db5c39-237a-4da0-bd75-d1052fbd8a94",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Fare</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Sex</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Cabin</th>\n",
       "      <th>Embarked</th>\n",
       "      <th>Age_imp</th>\n",
       "      <th>Fare_imp</th>\n",
       "      <th>Pclass_imp</th>\n",
       "      <th>Sex_imp</th>\n",
       "      <th>SibSp_imp</th>\n",
       "      <th>Parch_imp</th>\n",
       "      <th>Cabin_imp</th>\n",
       "      <th>Embarked_imp</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Age</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>1.086293</td>\n",
       "      <td>1.431484</td>\n",
       "      <td>0.636896</td>\n",
       "      <td>0.323648</td>\n",
       "      <td>-0.216592</td>\n",
       "      <td>-1.592462</td>\n",
       "      <td>0.051844</td>\n",
       "      <td>-0.078378</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>1.086293</td>\n",
       "      <td>1.431484</td>\n",
       "      <td>0.636896</td>\n",
       "      <td>0.323648</td>\n",
       "      <td>-0.216592</td>\n",
       "      <td>-1.592462</td>\n",
       "      <td>0.051844</td>\n",
       "      <td>-0.078378</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>1.051900</td>\n",
       "      <td>1.431484</td>\n",
       "      <td>0.654526</td>\n",
       "      <td>0.323867</td>\n",
       "      <td>-0.214849</td>\n",
       "      <td>-1.589245</td>\n",
       "      <td>0.048102</td>\n",
       "      <td>-0.064069</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.701190</td>\n",
       "      <td>0.641137</td>\n",
       "      <td>0.963843</td>\n",
       "      <td>0.358354</td>\n",
       "      <td>-0.180122</td>\n",
       "      <td>-1.243016</td>\n",
       "      <td>-0.002592</td>\n",
       "      <td>-0.095363</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.701190</td>\n",
       "      <td>0.641137</td>\n",
       "      <td>0.963843</td>\n",
       "      <td>0.358354</td>\n",
       "      <td>-0.180122</td>\n",
       "      <td>-1.243016</td>\n",
       "      <td>-0.002592</td>\n",
       "      <td>-0.095363</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>95</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.701190</td>\n",
       "      <td>0.641137</td>\n",
       "      <td>0.963843</td>\n",
       "      <td>0.358354</td>\n",
       "      <td>-0.180122</td>\n",
       "      <td>-1.243016</td>\n",
       "      <td>-0.002592</td>\n",
       "      <td>-0.095363</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>96</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.701190</td>\n",
       "      <td>0.641137</td>\n",
       "      <td>0.963843</td>\n",
       "      <td>0.358354</td>\n",
       "      <td>-0.180122</td>\n",
       "      <td>-1.243016</td>\n",
       "      <td>-0.002592</td>\n",
       "      <td>-0.095363</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>97</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.701190</td>\n",
       "      <td>0.641137</td>\n",
       "      <td>0.963843</td>\n",
       "      <td>0.358354</td>\n",
       "      <td>-0.180122</td>\n",
       "      <td>-1.243016</td>\n",
       "      <td>-0.002592</td>\n",
       "      <td>-0.095363</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>98</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.701190</td>\n",
       "      <td>0.641137</td>\n",
       "      <td>0.963843</td>\n",
       "      <td>0.358354</td>\n",
       "      <td>-0.180122</td>\n",
       "      <td>-1.243016</td>\n",
       "      <td>-0.002592</td>\n",
       "      <td>-0.095363</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>99</th>\n",
       "      <td>256.1646</td>\n",
       "      <td>2.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>2.5</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.5</td>\n",
       "      <td>-0.701190</td>\n",
       "      <td>0.641137</td>\n",
       "      <td>0.963843</td>\n",
       "      <td>0.358354</td>\n",
       "      <td>-0.180122</td>\n",
       "      <td>-1.243016</td>\n",
       "      <td>-0.002592</td>\n",
       "      <td>-0.095363</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>100 rows × 15 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "         Fare  Pclass  Sex  SibSp  Parch  Cabin  Embarked   Age_imp  Fare_imp  \\\n",
       "Age                                                                             \n",
       "0    256.1646     2.0  0.5    2.5    3.0    4.0       1.5  1.086293  1.431484   \n",
       "1    256.1646     2.0  0.5    2.5    3.0    4.0       1.5  1.086293  1.431484   \n",
       "2    256.1646     2.0  0.5    2.5    3.0    4.0       1.5  1.051900  1.431484   \n",
       "3    256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.701190  0.641137   \n",
       "4    256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.701190  0.641137   \n",
       "..        ...     ...  ...    ...    ...    ...       ...       ...       ...   \n",
       "95   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.701190  0.641137   \n",
       "96   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.701190  0.641137   \n",
       "97   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.701190  0.641137   \n",
       "98   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.701190  0.641137   \n",
       "99   256.1646     2.0  0.5    2.5    3.0    4.0       1.5 -0.701190  0.641137   \n",
       "\n",
       "     Pclass_imp   Sex_imp  SibSp_imp  Parch_imp  Cabin_imp  Embarked_imp  \n",
       "Age                                                                       \n",
       "0      0.636896  0.323648  -0.216592  -1.592462   0.051844     -0.078378  \n",
       "1      0.636896  0.323648  -0.216592  -1.592462   0.051844     -0.078378  \n",
       "2      0.654526  0.323867  -0.214849  -1.589245   0.048102     -0.064069  \n",
       "3      0.963843  0.358354  -0.180122  -1.243016  -0.002592     -0.095363  \n",
       "4      0.963843  0.358354  -0.180122  -1.243016  -0.002592     -0.095363  \n",
       "..          ...       ...        ...        ...        ...           ...  \n",
       "95     0.963843  0.358354  -0.180122  -1.243016  -0.002592     -0.095363  \n",
       "96     0.963843  0.358354  -0.180122  -1.243016  -0.002592     -0.095363  \n",
       "97     0.963843  0.358354  -0.180122  -1.243016  -0.002592     -0.095363  \n",
       "98     0.963843  0.358354  -0.180122  -1.243016  -0.002592     -0.095363  \n",
       "99     0.963843  0.358354  -0.180122  -1.243016  -0.002592     -0.095363  \n",
       "\n",
       "[100 rows x 15 columns]"
      ]
     },
     "execution_count": 77,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "grouped.median()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "id": "526d86f5-e3a3-4147-963a-edcffc876385",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Fare</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Sex</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Cabin</th>\n",
       "      <th>Embarked</th>\n",
       "      <th>Age_imp</th>\n",
       "      <th>Fare_imp</th>\n",
       "      <th>Pclass_imp</th>\n",
       "      <th>Sex_imp</th>\n",
       "      <th>SibSp_imp</th>\n",
       "      <th>Parch_imp</th>\n",
       "      <th>Cabin_imp</th>\n",
       "      <th>Embarked_imp</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Age</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.350804</td>\n",
       "      <td>-0.850910</td>\n",
       "      <td>-0.191264</td>\n",
       "      <td>0.150022</td>\n",
       "      <td>-0.339362</td>\n",
       "      <td>-2.975204</td>\n",
       "      <td>-1.120165</td>\n",
       "      <td>-0.426522</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.350804</td>\n",
       "      <td>-0.850910</td>\n",
       "      <td>-0.191264</td>\n",
       "      <td>0.150022</td>\n",
       "      <td>-0.339362</td>\n",
       "      <td>-2.975204</td>\n",
       "      <td>-1.120165</td>\n",
       "      <td>-0.426522</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.335089</td>\n",
       "      <td>-0.850910</td>\n",
       "      <td>-0.172133</td>\n",
       "      <td>0.149460</td>\n",
       "      <td>-0.337618</td>\n",
       "      <td>-2.962228</td>\n",
       "      <td>-1.085261</td>\n",
       "      <td>-0.408962</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>-0.800612</td>\n",
       "      <td>-0.495118</td>\n",
       "      <td>0.154508</td>\n",
       "      <td>0.032016</td>\n",
       "      <td>-0.312179</td>\n",
       "      <td>-2.858494</td>\n",
       "      <td>-1.032428</td>\n",
       "      <td>-0.392770</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>-0.800612</td>\n",
       "      <td>-0.495118</td>\n",
       "      <td>0.154508</td>\n",
       "      <td>0.032016</td>\n",
       "      <td>-0.312179</td>\n",
       "      <td>-2.858494</td>\n",
       "      <td>-1.032428</td>\n",
       "      <td>-0.392770</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>95</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>-0.800612</td>\n",
       "      <td>-0.495118</td>\n",
       "      <td>0.154508</td>\n",
       "      <td>0.032016</td>\n",
       "      <td>-0.312179</td>\n",
       "      <td>-2.858494</td>\n",
       "      <td>-1.032428</td>\n",
       "      <td>-0.392770</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>96</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>-0.800612</td>\n",
       "      <td>-0.495118</td>\n",
       "      <td>0.154508</td>\n",
       "      <td>0.032016</td>\n",
       "      <td>-0.312179</td>\n",
       "      <td>-2.858494</td>\n",
       "      <td>-1.032428</td>\n",
       "      <td>-0.392770</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>97</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>-0.800612</td>\n",
       "      <td>-0.495118</td>\n",
       "      <td>0.154508</td>\n",
       "      <td>0.032016</td>\n",
       "      <td>-0.312179</td>\n",
       "      <td>-2.858494</td>\n",
       "      <td>-1.032428</td>\n",
       "      <td>-0.392770</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>98</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>-0.800612</td>\n",
       "      <td>-0.495118</td>\n",
       "      <td>0.154508</td>\n",
       "      <td>0.032016</td>\n",
       "      <td>-0.312179</td>\n",
       "      <td>-2.858494</td>\n",
       "      <td>-1.032428</td>\n",
       "      <td>-0.392770</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>99</th>\n",
       "      <td>0.0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>-0.800612</td>\n",
       "      <td>-0.495118</td>\n",
       "      <td>0.154508</td>\n",
       "      <td>0.032016</td>\n",
       "      <td>-0.312179</td>\n",
       "      <td>-2.858494</td>\n",
       "      <td>-1.032428</td>\n",
       "      <td>-0.392770</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>100 rows × 15 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     Fare  Pclass  Sex  SibSp  Parch  Cabin  Embarked   Age_imp  Fare_imp  \\\n",
       "Age                                                                         \n",
       "0     0.0       1    0      0      0      0         0  0.350804 -0.850910   \n",
       "1     0.0       1    0      0      0      0         0  0.350804 -0.850910   \n",
       "2     0.0       1    0      0      0      0         0  0.335089 -0.850910   \n",
       "3     0.0       1    0      0      0      0         0 -0.800612 -0.495118   \n",
       "4     0.0       1    0      0      0      0         0 -0.800612 -0.495118   \n",
       "..    ...     ...  ...    ...    ...    ...       ...       ...       ...   \n",
       "95    0.0       1    0      0      0      0         0 -0.800612 -0.495118   \n",
       "96    0.0       1    0      0      0      0         0 -0.800612 -0.495118   \n",
       "97    0.0       1    0      0      0      0         0 -0.800612 -0.495118   \n",
       "98    0.0       1    0      0      0      0         0 -0.800612 -0.495118   \n",
       "99    0.0       1    0      0      0      0         0 -0.800612 -0.495118   \n",
       "\n",
       "     Pclass_imp   Sex_imp  SibSp_imp  Parch_imp  Cabin_imp  Embarked_imp  \n",
       "Age                                                                       \n",
       "0     -0.191264  0.150022  -0.339362  -2.975204  -1.120165     -0.426522  \n",
       "1     -0.191264  0.150022  -0.339362  -2.975204  -1.120165     -0.426522  \n",
       "2     -0.172133  0.149460  -0.337618  -2.962228  -1.085261     -0.408962  \n",
       "3      0.154508  0.032016  -0.312179  -2.858494  -1.032428     -0.392770  \n",
       "4      0.154508  0.032016  -0.312179  -2.858494  -1.032428     -0.392770  \n",
       "..          ...       ...        ...        ...        ...           ...  \n",
       "95     0.154508  0.032016  -0.312179  -2.858494  -1.032428     -0.392770  \n",
       "96     0.154508  0.032016  -0.312179  -2.858494  -1.032428     -0.392770  \n",
       "97     0.154508  0.032016  -0.312179  -2.858494  -1.032428     -0.392770  \n",
       "98     0.154508  0.032016  -0.312179  -2.858494  -1.032428     -0.392770  \n",
       "99     0.154508  0.032016  -0.312179  -2.858494  -1.032428     -0.392770  \n",
       "\n",
       "[100 rows x 15 columns]"
      ]
     },
     "execution_count": 78,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "grouped.min()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "id": "b1fe7aed-069e-4cef-9aa5-944e6cfbf0f8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Fare</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Sex</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Cabin</th>\n",
       "      <th>Embarked</th>\n",
       "      <th>Age_imp</th>\n",
       "      <th>Fare_imp</th>\n",
       "      <th>Pclass_imp</th>\n",
       "      <th>Sex_imp</th>\n",
       "      <th>SibSp_imp</th>\n",
       "      <th>Parch_imp</th>\n",
       "      <th>Cabin_imp</th>\n",
       "      <th>Embarked_imp</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Age</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>512.3292</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>8</td>\n",
       "      <td>3</td>\n",
       "      <td>1.236288</td>\n",
       "      <td>1.773888</td>\n",
       "      <td>4.128839</td>\n",
       "      <td>0.892450</td>\n",
       "      <td>0.109097</td>\n",
       "      <td>-0.823929</td>\n",
       "      <td>1.415961</td>\n",
       "      <td>0.997595</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>512.3292</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>8</td>\n",
       "      <td>3</td>\n",
       "      <td>1.236288</td>\n",
       "      <td>1.773888</td>\n",
       "      <td>4.128839</td>\n",
       "      <td>0.892450</td>\n",
       "      <td>0.109097</td>\n",
       "      <td>-0.823929</td>\n",
       "      <td>1.415961</td>\n",
       "      <td>0.997595</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>512.3292</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>8</td>\n",
       "      <td>3</td>\n",
       "      <td>1.187937</td>\n",
       "      <td>1.773888</td>\n",
       "      <td>4.146469</td>\n",
       "      <td>0.891887</td>\n",
       "      <td>0.108843</td>\n",
       "      <td>-0.810567</td>\n",
       "      <td>1.414971</td>\n",
       "      <td>0.983070</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>512.3292</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>8</td>\n",
       "      <td>3</td>\n",
       "      <td>-0.246860</td>\n",
       "      <td>1.019812</td>\n",
       "      <td>4.207376</td>\n",
       "      <td>0.878685</td>\n",
       "      <td>0.115032</td>\n",
       "      <td>-0.145907</td>\n",
       "      <td>1.405511</td>\n",
       "      <td>1.012388</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>512.3292</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>8</td>\n",
       "      <td>3</td>\n",
       "      <td>-0.246860</td>\n",
       "      <td>1.019812</td>\n",
       "      <td>4.207376</td>\n",
       "      <td>0.878685</td>\n",
       "      <td>0.115032</td>\n",
       "      <td>-0.145907</td>\n",
       "      <td>1.405511</td>\n",
       "      <td>1.012388</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>95</th>\n",
       "      <td>512.3292</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>8</td>\n",
       "      <td>3</td>\n",
       "      <td>-0.246860</td>\n",
       "      <td>1.019812</td>\n",
       "      <td>4.207376</td>\n",
       "      <td>0.878685</td>\n",
       "      <td>0.115032</td>\n",
       "      <td>-0.145907</td>\n",
       "      <td>1.405511</td>\n",
       "      <td>1.012388</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>96</th>\n",
       "      <td>512.3292</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>8</td>\n",
       "      <td>3</td>\n",
       "      <td>-0.246860</td>\n",
       "      <td>1.019812</td>\n",
       "      <td>4.207376</td>\n",
       "      <td>0.878685</td>\n",
       "      <td>0.115032</td>\n",
       "      <td>-0.145907</td>\n",
       "      <td>1.405511</td>\n",
       "      <td>1.012388</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>97</th>\n",
       "      <td>512.3292</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>8</td>\n",
       "      <td>3</td>\n",
       "      <td>-0.246860</td>\n",
       "      <td>1.019812</td>\n",
       "      <td>4.207376</td>\n",
       "      <td>0.878685</td>\n",
       "      <td>0.115032</td>\n",
       "      <td>-0.145907</td>\n",
       "      <td>1.405511</td>\n",
       "      <td>1.012388</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>98</th>\n",
       "      <td>512.3292</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>8</td>\n",
       "      <td>3</td>\n",
       "      <td>-0.246860</td>\n",
       "      <td>1.019812</td>\n",
       "      <td>4.207376</td>\n",
       "      <td>0.878685</td>\n",
       "      <td>0.115032</td>\n",
       "      <td>-0.145907</td>\n",
       "      <td>1.405511</td>\n",
       "      <td>1.012388</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>99</th>\n",
       "      <td>512.3292</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>6</td>\n",
       "      <td>8</td>\n",
       "      <td>3</td>\n",
       "      <td>-0.246860</td>\n",
       "      <td>1.019812</td>\n",
       "      <td>4.207376</td>\n",
       "      <td>0.878685</td>\n",
       "      <td>0.115032</td>\n",
       "      <td>-0.145907</td>\n",
       "      <td>1.405511</td>\n",
       "      <td>1.012388</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>100 rows × 15 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "         Fare  Pclass  Sex  SibSp  Parch  Cabin  Embarked   Age_imp  Fare_imp  \\\n",
       "Age                                                                             \n",
       "0    512.3292       3    1      5      6      8         3  1.236288  1.773888   \n",
       "1    512.3292       3    1      5      6      8         3  1.236288  1.773888   \n",
       "2    512.3292       3    1      5      6      8         3  1.187937  1.773888   \n",
       "3    512.3292       3    1      5      6      8         3 -0.246860  1.019812   \n",
       "4    512.3292       3    1      5      6      8         3 -0.246860  1.019812   \n",
       "..        ...     ...  ...    ...    ...    ...       ...       ...       ...   \n",
       "95   512.3292       3    1      5      6      8         3 -0.246860  1.019812   \n",
       "96   512.3292       3    1      5      6      8         3 -0.246860  1.019812   \n",
       "97   512.3292       3    1      5      6      8         3 -0.246860  1.019812   \n",
       "98   512.3292       3    1      5      6      8         3 -0.246860  1.019812   \n",
       "99   512.3292       3    1      5      6      8         3 -0.246860  1.019812   \n",
       "\n",
       "     Pclass_imp   Sex_imp  SibSp_imp  Parch_imp  Cabin_imp  Embarked_imp  \n",
       "Age                                                                       \n",
       "0      4.128839  0.892450   0.109097  -0.823929   1.415961      0.997595  \n",
       "1      4.128839  0.892450   0.109097  -0.823929   1.415961      0.997595  \n",
       "2      4.146469  0.891887   0.108843  -0.810567   1.414971      0.983070  \n",
       "3      4.207376  0.878685   0.115032  -0.145907   1.405511      1.012388  \n",
       "4      4.207376  0.878685   0.115032  -0.145907   1.405511      1.012388  \n",
       "..          ...       ...        ...        ...        ...           ...  \n",
       "95     4.207376  0.878685   0.115032  -0.145907   1.405511      1.012388  \n",
       "96     4.207376  0.878685   0.115032  -0.145907   1.405511      1.012388  \n",
       "97     4.207376  0.878685   0.115032  -0.145907   1.405511      1.012388  \n",
       "98     4.207376  0.878685   0.115032  -0.145907   1.405511      1.012388  \n",
       "99     4.207376  0.878685   0.115032  -0.145907   1.405511      1.012388  \n",
       "\n",
       "[100 rows x 15 columns]"
      ]
     },
     "execution_count": 76,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "grouped.max()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "id": "cce77bdf-65e8-4ba2-921a-139f6dc6bb8d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Age</th>\n",
       "      <th>Fare</th>\n",
       "      <th>Pclass</th>\n",
       "      <th>Sex</th>\n",
       "      <th>SibSp</th>\n",
       "      <th>Parch</th>\n",
       "      <th>Cabin</th>\n",
       "      <th>Embarked</th>\n",
       "      <th>Age_imp</th>\n",
       "      <th>Fare_imp</th>\n",
       "      <th>Pclass_imp</th>\n",
       "      <th>Sex_imp</th>\n",
       "      <th>SibSp_imp</th>\n",
       "      <th>Parch_imp</th>\n",
       "      <th>Cabin_imp</th>\n",
       "      <th>Embarked_imp</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>2</td>\n",
       "      <td>0.420696</td>\n",
       "      <td>-0.763060</td>\n",
       "      <td>3.695189</td>\n",
       "      <td>0.806548</td>\n",
       "      <td>0.106178</td>\n",
       "      <td>-1.754545</td>\n",
       "      <td>0.013883</td>\n",
       "      <td>-0.024218</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>0</td>\n",
       "      <td>0.398679</td>\n",
       "      <td>-0.736817</td>\n",
       "      <td>3.707690</td>\n",
       "      <td>0.800110</td>\n",
       "      <td>0.108225</td>\n",
       "      <td>-2.021857</td>\n",
       "      <td>-0.108471</td>\n",
       "      <td>0.540706</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>1</td>\n",
       "      <td>0.405689</td>\n",
       "      <td>-0.773641</td>\n",
       "      <td>3.789224</td>\n",
       "      <td>0.806119</td>\n",
       "      <td>0.098602</td>\n",
       "      <td>-2.142056</td>\n",
       "      <td>0.011811</td>\n",
       "      <td>-0.285514</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>3</td>\n",
       "      <td>0.420696</td>\n",
       "      <td>-0.763060</td>\n",
       "      <td>3.695189</td>\n",
       "      <td>0.806548</td>\n",
       "      <td>0.106178</td>\n",
       "      <td>-1.754545</td>\n",
       "      <td>0.013883</td>\n",
       "      <td>-0.024218</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>0.370713</td>\n",
       "      <td>-0.744991</td>\n",
       "      <td>2.805331</td>\n",
       "      <td>0.774834</td>\n",
       "      <td>0.098831</td>\n",
       "      <td>-2.066766</td>\n",
       "      <td>-1.010673</td>\n",
       "      <td>-0.158700</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9879408</th>\n",
       "      <td>99</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>2</td>\n",
       "      <td>-0.273745</td>\n",
       "      <td>-0.404497</td>\n",
       "      <td>3.770360</td>\n",
       "      <td>0.815020</td>\n",
       "      <td>0.114160</td>\n",
       "      <td>-1.582914</td>\n",
       "      <td>0.006465</td>\n",
       "      <td>-0.023592</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9879409</th>\n",
       "      <td>99</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>0</td>\n",
       "      <td>-0.255440</td>\n",
       "      <td>-0.390426</td>\n",
       "      <td>3.777941</td>\n",
       "      <td>0.807265</td>\n",
       "      <td>0.113767</td>\n",
       "      <td>-1.925580</td>\n",
       "      <td>-0.111190</td>\n",
       "      <td>0.581653</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9879410</th>\n",
       "      <td>99</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>1</td>\n",
       "      <td>-0.262094</td>\n",
       "      <td>-0.425943</td>\n",
       "      <td>3.866649</td>\n",
       "      <td>0.813273</td>\n",
       "      <td>0.104144</td>\n",
       "      <td>-2.011373</td>\n",
       "      <td>0.004393</td>\n",
       "      <td>-0.258231</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9879411</th>\n",
       "      <td>99</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>3</td>\n",
       "      <td>-0.273745</td>\n",
       "      <td>-0.404497</td>\n",
       "      <td>3.770360</td>\n",
       "      <td>0.815020</td>\n",
       "      <td>0.114160</td>\n",
       "      <td>-1.582914</td>\n",
       "      <td>0.006465</td>\n",
       "      <td>-0.023592</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9879412</th>\n",
       "      <td>99</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>-0.265755</td>\n",
       "      <td>-0.409821</td>\n",
       "      <td>2.848365</td>\n",
       "      <td>0.783306</td>\n",
       "      <td>0.106813</td>\n",
       "      <td>-1.865452</td>\n",
       "      <td>-0.960119</td>\n",
       "      <td>-0.151947</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>500 rows × 16 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "         Age  Fare  Pclass  Sex  SibSp  Parch  Cabin  Embarked   Age_imp  \\\n",
       "0          0   0.0       3    0      1      0      8         2  0.420696   \n",
       "1          0   0.0       3    0      1      0      8         0  0.398679   \n",
       "2          0   0.0       3    0      1      0      8         1  0.405689   \n",
       "3          0   0.0       3    0      1      0      8         3  0.420696   \n",
       "4          0   0.0       3    0      1      0      2         2  0.370713   \n",
       "...      ...   ...     ...  ...    ...    ...    ...       ...       ...   \n",
       "9879408   99   0.0       3    0      1      0      8         2 -0.273745   \n",
       "9879409   99   0.0       3    0      1      0      8         0 -0.255440   \n",
       "9879410   99   0.0       3    0      1      0      8         1 -0.262094   \n",
       "9879411   99   0.0       3    0      1      0      8         3 -0.273745   \n",
       "9879412   99   0.0       3    0      1      0      2         2 -0.265755   \n",
       "\n",
       "         Fare_imp  Pclass_imp   Sex_imp  SibSp_imp  Parch_imp  Cabin_imp  \\\n",
       "0       -0.763060    3.695189  0.806548   0.106178  -1.754545   0.013883   \n",
       "1       -0.736817    3.707690  0.800110   0.108225  -2.021857  -0.108471   \n",
       "2       -0.773641    3.789224  0.806119   0.098602  -2.142056   0.011811   \n",
       "3       -0.763060    3.695189  0.806548   0.106178  -1.754545   0.013883   \n",
       "4       -0.744991    2.805331  0.774834   0.098831  -2.066766  -1.010673   \n",
       "...           ...         ...       ...        ...        ...        ...   \n",
       "9879408 -0.404497    3.770360  0.815020   0.114160  -1.582914   0.006465   \n",
       "9879409 -0.390426    3.777941  0.807265   0.113767  -1.925580  -0.111190   \n",
       "9879410 -0.425943    3.866649  0.813273   0.104144  -2.011373   0.004393   \n",
       "9879411 -0.404497    3.770360  0.815020   0.114160  -1.582914   0.006465   \n",
       "9879412 -0.409821    2.848365  0.783306   0.106813  -1.865452  -0.960119   \n",
       "\n",
       "         Embarked_imp  \n",
       "0           -0.024218  \n",
       "1            0.540706  \n",
       "2           -0.285514  \n",
       "3           -0.024218  \n",
       "4           -0.158700  \n",
       "...               ...  \n",
       "9879408     -0.023592  \n",
       "9879409      0.581653  \n",
       "9879410     -0.258231  \n",
       "9879411     -0.023592  \n",
       "9879412     -0.151947  \n",
       "\n",
       "[500 rows x 16 columns]"
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "grouped.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "id": "eeea0d62-97b3-4840-9697-8f136d1d6c39",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Age\n",
       "0     1.026710\n",
       "1     1.026710\n",
       "2     0.993500\n",
       "3    -0.674899\n",
       "4    -0.674899\n",
       "        ...   \n",
       "95   -0.674899\n",
       "96   -0.674899\n",
       "97   -0.674899\n",
       "98   -0.674899\n",
       "99   -0.674899\n",
       "Name: Age_imp, Length: 100, dtype: float32"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "res."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d037beda-47a3-4b5b-8f46-29b969024654",
   "metadata": {},
   "outputs": [],
   "source": [
    "old = datetime.datetime.now()\n",
    "data = generated.copy()\n",
    "coll_name = 'Age'\n",
    "min_max = getMinMax(df)\n",
    "cond1 = data[coll_name] >= min_max[coll_name][0]\n",
    "cond2 = data[coll_name] <= min_max[coll_name][1]\n",
    "colors = [\"brown\", \"teal\", \"blue\", \"coral\", \"limegreen\"]\n",
    "plot_top5_centered_importance(clf, data, coll_name, True)\n",
    "new = datetime.datetime.now()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "97fff7d0-3d25-4e81-a618-29e815f1be71",
   "metadata": {},
   "outputs": [],
   "source": [
    "new - old2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 181,
   "id": "0695b43b-4bc2-455e-a6a2-29d97cf56267",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "datetime.timedelta(0)"
      ]
     },
     "execution_count": 181,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import datetime\n",
    "old = datetime.datetime.now()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2af5ba8c-6b94-456d-8935-e29854194d4d",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "id": "9f849dbe-5f5f-4329-a82e-14a0c8cc39e9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:title={'center':'Центрированный график изменения абсолютной важности переменных'}, xlabel='Age', ylabel='Важность переменных'>"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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FhdffDFtRXg///xzduzYwZQpU3q0r/vvvz8WTeyUgloREREREZEk8fj06THd//lLl4ZdP2/ePNLT07niiiva182cOZPa2lqOPfZYKioqaGlp4fbbb+eMM84AoLW1lQsuuIBPPvmE6dOn88gjj5CTk8Ps2bP5wx/+wKxZs8jLy+O6667jxRdfJDs7m+eff57hw4dH9W+K+zy1IiIiIiIiklyWLFnCAQccELI+KyuLZ599lk8++YR58+bxgx/8oH26nZUrV3LVVVexfPlyCgoK+Nvf/hby+Lq6Og455BA+//xzjjrqKO67776ot11BrYiIiIiIiIRlreWmm25in3324Stf+Qpbt25lx44dAIwZM4bDDz8cgAsvvJD33nsv5PEZGRmceuqpABxwwAFs2LAh6m1U+rGIiIiIiMgAN336dJ5++umQ9Y899hi7du1i8eLFpKenM378+PYpd4IrFYerXJyent6+3u1209raGvW2K6gVERERERFJEp2NeY21OXPmcNNNNzF37lwuv/xyAL744gs2btzIsGHDSE9PZ968eWzcuLH9MZs2bWLhwoUceuihPP744xxxxBEJabvSj0VERERERAY4YwzPPvssb7zxBpMmTWL69On85Cc/4eSTT+bjjz9mxowZPPLII0ybNq39MVOnTuWvf/0re+65JxUVFVx55ZUJabt6avuD8m3QWA8jJ4EmbBYRERERkV4YOXIk//73v0PWL1y4MOz2K1asCLt+/vz57b/X1ta2//61r32Nr33ta31rZBgKalPdp2/BC38F64V958CZ1yS6RSIiIiIiInGj9ONU9+7TTkAL8Nk8qK1MaHNERERERETiSUFtKmtuhN3b/VZYqNyZsOaIiIiIiIjEm4LaVFa2NXRdXVX82yEiIiIiIpIgCmpT2c5NoeuUfiwiIiIiIgOIgtpUtmtz6Lq6yrg3Q0REREREJFFU/TiVhQtqa5V+LCIiIiIiPed2u5kxY0b78nPPPcf48eMT16AIKahNZWF7ahXUioiIiIhIz2VnZ/PZZ5/16DHWWqy1uFyJSwJWUJuqmpugIkylY6Ufi4iIiIikLPOLX8R0//aWWyLetra2ljPOOIOKigpaWlq4/fbbOeOMM9iwYQMnnHACBx98MIsXL+bll1/m3//+N//+979pamrirLPO4hcx/jv8KahNVWVbABu6XoWiRERERESkFxoaGth3330BmDBhAk899RTPPvssBQUFlJWVccghh3D66acDsHr1ah5++GEOOeQQXnvtNVavXs2HH36ItZbTTz+dd955h6OOOiou7VZQm6rCpR6DempFRERERKRXgtOPW1pauOmmm3jnnXdwuVxs3bqVHTt2ADBu3DgOOeQQAF577TVee+019ttvP8Dp4V29erWCWulGZ0FtQy14WsGtUysiIiIiIr332GOPsWvXLhYvXkx6ejrjx4+nsbERgNzc3PbtrLX85Cc/4bvf/W5C2qnIJ1V1FtSCUyyqYEj82iIiIiIiIlHRkzGvsVZVVcWwYcNIT09n3rx5bNy4Mex2J5xwAj/72c+44IILyMvLY+vWraSnpzNs2LC4tFNBbarataXz+2orFdSKiIiIiEifXHDBBZx22mnMmDGDWbNmMW3atLDbHX/88SxfvpxDDz0UgLy8PP75z38qqJUutDTB7tLO79e4WhERERER6aHa2tqA5eLiYhYuXBh22yVLlgQsX3fddVx33XUxa1tXEjeZkPRe2TbCVj5uU6u5akVEREREZGBQUJuKdm3q+n711IqIiIiIyAChoDYVBReJcqcHLmuuWhERERERGSAU1Kai4CJRY6YGLtcp/VhERERERAYGBbWpaGdQ+vGEGYHL6qkVEREREZEBQkFtqmlphoodgevG7x24rDG1IiIiIiIyQCioTTXlW8F6O5YLh8Kg4YHbqKdWRERERER6yO12s++++7L33ntzzjnnUF9f3+m2t956K3/4wx/i2LrOKahNNcHjaYeOgdzCwHX1NeDxxK9NIiIiIiKS8rKzs/nss89YsmQJGRkZ3HvvvYluUkQU1Kaa4MrHw8aAOw2y8/xWWqivjmuzRERERESk74yJ7S1SRx55JGvWrAHgkUceYZ999mHmzJlcdNFFIdved999HHjggcycOZOvfvWr7T28Tz31FHvvvTczZ87kqKOOAmDp0qUcdNBB7Lvvvuyzzz6sXr26z89ZWp/3IPEVXCRq6BjnZ24RNNR2rK+rgvxBcWuWiIiIiIj0D62trbzyyiuceOKJLF26lNtvv53333+f4uJidu/eHbL92WefzXe+8x0Abr75Zh544AGuueYabrvtNl599VVGjRpFZWUlAPfeey/XXXcdF1xwAc3NzXiikGGqntpUEy79GCCvKHC9ikWJiIiIiEgPNDQ0sO+++zJr1izGjh3LZZddxltvvcU555xDcXExAIMHDw553JIlSzjyyCOZMWMGjz32GEuXLgXg8MMP55JLLuG+++5rD14PPfRQ7rjjDn7729+yceNGsrOz+9xu9dSmktYW2L09cJ1/T60/FYsSEREREZEeaBtT21OXXHIJzz33HDNnzuShhx5i/vz5gNMru2jRIl566SUOOOAAFi9ezPnnn8/BBx/MSy+9xMknn8zf//535syZ06d2q6c2lZRvC6x8XFAMmb5vNvKCikXVVcWvXSIiIiIiEhXWxvbWU3PmzOGpp56ivLwcIGz6cU1NDSNGjKClpYXHHnusff3atWs5+OCDue222xg6dCibN29m3bp1TJw4kWuvvZYzzjiDL774otfPVRv11KaScEWi2gRXQFZPrYiIiIiI9NH06dP56U9/ytFHH43b7Wa//fbjoYceCtjml7/8JQcffDBDhw7l4IMPpqamBoAf/vCHrF69Gmstxx57LDNnzuS3v/0tjz76KOnp6ZSUlHDTTTf1uY0KalNJZ0WiIDT9WGNqRURERESkB2pra8Ouv/jii7n44osD1t16663tv1955ZVceeWVIY975plnQtb9+Mc/5sc//nHfGhpE6ceppLMiURBaKKpW6cciIiIiItL/KahNJbu66qkNHlNbGfPmiIiIiIiIJJqC2lTR2gLlwZWPR3f8HtJTWxnrFomIiIiIiCScgtpUsXt7UOXjIZCV27EcMqa2CrxeRERERERE+jMFtaliZ1DlY//UY4D0DMjM6Vi2XmgIP9BbRERERESkv1BQmyqCp/MJDmpB42pFRERERGTAUVCbKroqEtVG42pFRERERKQPnnvuOYwxrFixItFNiZiC2lTR1XQ+bcKNqxUREREREYnQE088wRFHHMETTzyR6KZELC3RDZAIeFqhfFvgurA9tUHpx+qpFRERERFJLbeeFeP9P9vpXbW1tbz33nvMmzeP0047jV/84hd4vV6+973v8dZbbzFmzBjS09O59NJL+drXvsbixYu5/vrrqa2tpbi4mIceeogRI0bEtv1hqKc2FZRvB6+nYzl/MGTnhm4X0lNbGctWiYiIiIhIP/L8889z4oknMmXKFIYMGcLixYt55pln2LBhA8uWLePRRx9l4cKFALS0tHDNNdfw9NNPs3jxYi699FJ++tOfJqTd6qlNBZEUiQKNqRURERERkV574oknuO666wD4+te/zhNPPEFrayvnnHMOLpeLkpISjjnmGABWrlzJkiVLOO644wDweDwJ6aUFBbWpIdKgVmNqRURERESkF3bv3s1bb73Fl19+iTEGj8eDMYazzgqfDm2tZfr06e09t4mkoDYVRNxTGzylj4JaEREREZGU0sWY11h6+umnueiii/j73//evu7oo49m8ODB/Oc//+Hiiy9m165dzJ8/n/PPP5+pU6eya9cuFi5cyKGHHkpLSwurVq1i+vTpcW+7xtSmguCgdliEPbVKPxYRERERkQg88cQTIb2yX/3qVyktLWX06NHstddeXHjhhey///4UFhaSkZHB008/zY033sjMmTPZd999ef/99xPSdvXUxlLlTlj0cmTbDhkJM46EzOzA9Z5WKIug8jGEjqmtqwRrwZjI2iAiIiIiIgPSvHnzQtZde+21gFMVOS8vj/Lycg466CBmzJgBwL777ss777wT13aGo6A2lmoqYOHzkW//1mNwxNlw4ImQnums210K3taObfIGQXZe+MdnZDmPa2lylj2t0FgfvlKyiIiIiIhIBE499VQqKytpbm7mZz/7GSUlJYluUgAFtcmkvhpeewgWvgBHnwv7HRv5eNo2uUVQuaNjua5SQa2IiIiIiPTa/PnzE92ELimoTUY1u+HFe2HBszB4ZOB93QW1eYWBQW1tJRSPinoTRUREREREkoGC2lgqHArHXdz9drWVsPhVaG4MXF+xw7n566xIVJuQaX0quz++iIiIiIhIilJQG0sFg+HwMyPb9oizYcEz8OEr0Nrc+Xbd9tQWBS7XalofERERERHpvzSlT7LILYDjL4Fr/wazTgCXO/x2Q0d3s5/guWoro9E6ERERERGRpKSgNtkUDIFTr4Dv3Q37zAb8puOZMANyCrp+fEhPbWV02yciIiIiIv3Wr371K6ZPn84+++zDvvvuy6JFixLdpG4p/ThZDS6Bs6+DI86CL94GrxcOPa37x2lMrYiIiIiI9MLChQt58cUX+eSTT8jMzKSsrIzm5i6GRiYJBbXJbthY+MpFkW+vMbUiIiIiIinrgE8OiOn+F++/uNP7tm/fTnFxMZmZmQAUFxc7j1m8mOuvv57a2lqKi4t56KGHyMnJ4aCDDuKFF15g6tSpfOMb32DOnDl85zvfiWn7w1H6cX+jMbUiIiIiItILxx9/PJs3b2bKlClcddVVvP3227S0tHDNNdfw9NNPs3jxYi699FJ++tOfUlhYyN13380ll1zCk08+SUVFRUICWlBPbf8TbkyttWBMuK1FREREREQAyMvLY/Hixbz77rvMmzeP8847j5tvvpklS5Zw3HHHAeDxeBgxYgQAxx13HE899RRXX301n3/+ecLaHdeg1hgzBngEGA5YYK619q6gbWYDzwPrfauesdbeFsdmprbMHHCng6fFWW5tdua/zcxObLtERERERCTpud1uZs+ezezZs5kxYwZ//etfmT59OgsXLgzZ1uv1snz5cnJycqioqGD06G5maomRePfUtgI/sNZ+YozJBxYbY1631i4L2u5da+2pcW5b/2CM01tbtatjXW2lgloRERERkRTQ1ZjXWFu5ciUul4vJkycD8Nlnn7Hnnnvy2muvsXDhQg499FBaWlpYtWoV06dP584772TPPffkjjvu4Fvf+hYLFy4kPT097u2Oa1Brrd0ObPf9XmOMWQ6MAoKDWumL3MLAoLauEoaMSFhzREREREQk+dXW1nLNNddQWVlJWloae+yxB3PnzuXyyy/n2muvpaqqitbWVr7//e+TlpbG/fffz4cffkh+fj5HHXUUt99+O7/4xS/i3u6Ejak1xowH9gPCTXx0qDHmc2AbcIO1dmk825bygsfV1qkCsoiIiIiIdO2AAw7g/fffD1lfXFzMO++8E7J++fLl7b//6U9/imnbumKstfE/qDF5wNvAr6y1zwTdVwB4rbW1xpiTgbustZPD7ONy4HKA4cOHH/Dkk0/GoeWRqa2tJS8vL2HHn7riDUaUdnwPsGryMWwbtU/C2pMsEn1eJDydl+Sk85KcdF6Sk85LctJ5SU46L50rLCxkjz32SMixPR4Pbrc7IccOZ82aNVRVBXbMHXPMMYuttbPCbR/3nlpjTDrwH+Cx4IAWwFpb7ff7y8aYvxljiq21ZUHbzQXmAsyaNcvOnj07tg3vgfnz55PQ9rRuAb+gdsqo4UxJoucnURJ+XiQsnZfkpPOSnHRekpPOS3LSeUlOOi+dW758Ofn5+Qk5dk1NTcKOHU5WVhb77bdfxNvHdZ5aY4wBHgCWW2vD9k8bY0p822GMOQinjeXxa2U/kBc0V21tZUKaISIiIiIiEmvx7qk9HLgI+NIY85lv3U3AWABr7b3A14ArjTGtQAPwdZuIHOlUllsUuFxXmYhWiIiIiIhID1hr8fXvDVi9Cf3iXf34PaDLs2StvRu4Oz4t6qeCC0Wpp1ZEREREJKllZWVRXl7OkCFDBmxga62lvLycrKysHj0uYdWPJYZCempV/VhEREREJJmNHj2aLVu2sGvXru43jrLGxsYeB5KxkpWVxejRo3v0GAW1/ZHG1IqIiIiIpJT09HQmTJiQkGPPnz+/R4WZkk1cC0VJnGTlgcuvJHdzA7Q0Ja49IiIiIiIiMaKgtj9yuSA3uLdWKcgiIiIiItL/KKjtr1QBWUREREREBgAFtf2VxtWKiIiIiMgAoKC2v1JPrYiIiIiIDAAKavurkLlqNaZWRERERET6HwW1/VVwoSj11IqIiIiISD+koLa/CumprUxEK0RERERERGJKQW1/pTG1IiIiIiIyACio7a80plZERERERAYABbX9VciYWgW1IiIiIiLS/yio7a9y8sH4nd7GWmhtSVx7REREREREYkBBbX/lcjuBrT/11oqIiIiISD+joLY/CykWpaBWRERERET6l7REN0BiKK8Idm7sWO7ttD7NjbBjI3haO9/G7YbhEyAjs3fHEBERERER6QUFtf1ZSLGoyp7vY+cm+OdtUF0e2fEuvQOGjOz5cURERERERHpB6cf9Wci0PpU9e3z5Nnjk1sgCWnDSmz95o2fHEBERERER6QMFtf1ZX8bUVu6Eh2+B2oqeHbNyV8+2FxERERER6QOlH/dneUHpx5H21FbvdgLa6rLA9cPHQ2ZO4LrGusBxu/UqRiUiIiIiIvGjoLY/C+mprez+MXVV8OitUFEauH7fOXD61eAK6tzfthbm3tCxXF/Ti4aKiIiIiIj0jtKP+7OejqltqINHb4NdmwPXTz8cTr8qNKCF0Llw66t72koREREREZFeU1Dbn/VkTG1TAzx2G5SuC1w/5UA4+/vgcod/XE5B4HJ9NVjb05aKiIiIiIj0ioLa/iw3OOCsAY8ndLuWJnjiDtiyKnD9xJlwzg3g7iJLPT0T0jI6lj2tzry2IiIiIiIicaAxtf2ZOw2y86GhbZyrhYduDu11ra2E8q2B68buCV//MaRn0CVjnBRk/2l/6qshM7uvrRcREREREemWgtr+Lq/IL6gFNq/o/jEj94Dzb4aMrMiOkVMQGtQOGt6jZoqIiIiIiPSGgtr+btDw0MJPXRk2Di78OWTldL9tm3DjakVEUozHelhWv4zFNYvJcGVw1pCzyHYr60RERCTZKajt7w49HdZ9Aa3N3W87fDxcdEtoRePuhAS1mtZHRFJDRUsFC6sXsqB6AQurF1Ll6Siot6h6EXftcVcCWyciIiKRUFDb302YAdffDzs3QldFidMzoGQCpKX3/BjqqRWRBLDW0mJbaPA20OhtpMHb0P677aIKe4tt4fO6z3mv6j2W1S/DdvLm+F71e1S2VlKUVhSjv0BERESiQUHtQJCTD+P3ju3+/SmoFZFeqvXU8mH1h5S1llHdWk21p7r9Z1VrlbPsqabB4wSvHsJUdI+ilfUrObjg4JgeQ4K0tsDrD8P6LyEzB/IHQ8GQ0FveoN59ESsiIv2OglrpO6Ufi0gfWWt5peIVfrv5t9R6ahPdnHYr6lcoqI23T9+ERS91v51xwdQD4azrVHFfRGSAU1Arfaf0YxHpg6rWKn696de8Xvl6Qo4/NXsqhxcczuGFh7Osfhl/3PLH9vuW1y9PSJsGtO3rItvOemHFInj2Ljj3R+ByxbZdIiKStBTUSt8p/VhEeun96vf5xcZfUNZS1qvHu3GT7c4m25VNliur/afbuLt83LD0YRxScAiHFhzK0PSh7etdBAZGKxoimAZNoiuSwob+ViyCd56C2efFpj0iIpL0FNRK3yn9WER6qMHbwF+2/oV/7/p3yH0ZJoMTB5/I4LTBFKYVku/Op9BdSEFaAYXuQvLT8sl15ZLlziLdRHdM5eScybhw4cULwOamzdR4ash397AqvPRecFA760QoLHbmQ6/Z7fws3wZN9R3bzH/SKXY47aD4tlVERJKCglrpO6Ufi0gPLK1bys82/IyNTRtD7puaPZXbx9/OxOyJCWgZZLuymZA1gbWNa9vXraxfyaz8WQlpz4DUEhTU7rFfaLBauQvm3hD4efPMn+E7v4Oho2PeRBERSS4agCJ9F5J+XANeb2LaIiJJ7cHSB/nWym+FBLQuXFxWchkPT304YQFtm2k50wKWV9QrBTmuWlsCl9MyQrcpGgrn/NApFtWmuQGe/A001sW2fSIiknQU1ErfpaVDhl/lSesNTAsTEQHeqnyLu7fdHTINz6iMUdw/5X6uGnkV6a7ET9ESHNSqWFScBacfp4cJagEm7A0nXhq4rnyr02OrL1ZFRAYUBbUSHUpBFpFuPLXrqZB1Zw05iyf3fJKZeTMT0KLw9szZM2BZPbVxFhzUdjUX7UEnw8xjAtet+hje/lf02yUiIkkroqDWGHNlF/dlGmP+Gr0mSUpSBWQR6UJlayWLaxYHrPv9hN9z87ibyXHnJKhV4U3JnoLBtC9vbNpIvUfZJ3ETSfpxG2Pg1Ctg5B6B69/+Nyz/IPptExGRpBRpT+3dxphnjDGD/VcaY/YGFgPfjHrLJLWoArKIdOGdqncC0o4nZU1izqA5CWxR53LduYzNHNu+bLGsbFiZwBYNMMGForoKasFJTz7vRsgtDFz/7F2wc3N02yYiIkkp0qD2JOBQ4HNjzGwAY8y1wIdAE3BALBonKUTpxyLShbcq3gpYnlOUnAFtGxWLSqCepB+3KSyGc38ELr/5iZsb4clfQ4MKR4mI9HcRBbXW2teAfYGlwBvGmMXAn4B7gEOstati1kJJDUo/FpFO1Hpq+aAmMBVUQa10Kjj9uLNCUcHG7QUnXha4bvd2WPRidNolIiJJK+JCUdbaHcDvgRZgP+BT4DZrbUuXD5SBQenHItKJBVULaPH7qBidOZrJ2ZMT2KLuBReLUgXkOArpqY0wqAU48ETY7yuB69Z/0fc2iYhIUou0UJTbGHMH8D/gLeB8YCxOOvIRMWyfpAqlH4tIJ96qDEo9LpyDMaaTrZPDtOzAntr1jetp8DYkqDUDiLW9Sz9uYwwcdU7guu3rNcWPiEg/F2lP7fvA9cAPrbWnWGufBGYCK4F5xphfxKqBkiKUfiwiYTR6G1lQvSBgXbIWiPKXn5bPqIxR7ctevKxpWJPAFg0QwanHrrTAcbKRKBoKWXkdy80NULGj720TEZGkFWlQW4AzdvbPbSustaXW2hOAHwM/ikHbJJUo/VhEwvig+oOAHs5h6cOYnjM9gS2KnFKQEyBkOp8e9NK2MQZKxgeuK13X6yaJiEjyizSoPcBa+1m4O6y1fwQOi1qLJDUp/VhEwghOPT6m6BhcJuJyDgmlYlEJEJx6HGmRqGAjJgYub1/fu/10pqUZli2EpQvA4+l+exERiam0SDay1nY567y19tPoNEdSltKPRSRIi7eFd6reCViX7FWP/SmoTYC+FInyFxLURrmn9pX74JM3nN/3Pw4K9oru/kVEpEciCmqNMf/oZhNrrb2sm22kP8sOCmob6pxvr909HAslIv3Gx7UfU+PpGIpQlFbEvnn7Jq5BPRQc1K5tXEuzt5kMVy8DLeletILakqCgtnSdU4QqGgXKqnd3BLQAn8/DHD6t8+1FRCTmIgpqgTmA7eL+ru6TgcDtdgpzNNb6Vljn99zChDZLRBInOPV4duFs0kykHzuJNyhtECUZJZQ2lwLQaltZ27g2ZKytRFFLHyof+yse6QTEbUFyXRXUVEDB4L61D2DVR4HLnlbSW7pMaBMRkRiLaGCTtXa8tXZCF7eJ3e9F+j2lIIuIj8d6mF85P2BdKqUetwme2kfFomIspFBUL3tqXe7QYlHb1/ZuX8FWfhSyKrOpNsyGIiISL72q1mGMKTDGPGKMWWKM+YcxJr/7R0m/pwrIIuLzRd0X7G7d3b6c68rlwPwDE9ii3gnuldW42hiLVqEoCJOCHIViUU0NsO6LkNUZzeqpFRFJpN7mgf0BOAt4zfezAbg6Wo2SFKUKyCIpzWM9vFrxKvWeevLp23eVb1a8GbB8VOFRKTkWVcWi4ixkTG0v048BRkwIXI5Gsai1n4GnJWS1empFRBKrt0HtqcAPrLVzjTHfAH6DglpR+rFISvvjlj/yr13/AmBo7lBmNs+kJKOkx/ux1oaMp03F1GMIDWpXN6ymxbaQbvoQbEnnopV+DLHpqQ2TegyQ0VzX932LiEiv9Tj92BhjgGHAZ75VXwA9v+qR/kfpxyIpy2M9vFD+QvvyLvcuLlt1GZsaN/V4X8vrl7OjZUf7cqbJ5NDCQ6PSzngrTi9maPrQ9uVm28z6hijPeSodolX9GGDYWGdsbZvKnX37XPJ4YNXHYe/KbFJQKyKSSL0ZU+vy3Vp9y630vsdX+hOlH4ukrHUN62jwNgSsK20u5durvs3q+tU92teblYGpx4cXHk62K7vPbUyU4GJRKxqUghwz0ap+DM543KFjAtf1pbd2y0poCB8UZzQr/VhEJJEiCmqNMZe23YBv4Uzhc7pv+auxbKCkEKUfi6SsL+u/DLu+vLWc76z+Dl/Whb8/WLjU42OKjulz+xIpuFiUKiDHUHD6cV8KRQGUBI2r7UtQu+LDTu9ST62ISGJF2sN6f5h1P/f7XfPUitKPRVLYkrolnd5X46nhytVX8qeJf+KggoO63M+6xnVsaupIWU4zaRxZeGTU2pkIKhYVR61Ngct9ST8Gp1jU5/M6lntbLMpaWNl5UKsxtSIiiRVp+vGEbm6ap1aUfiySwoKD2kmtkwKWG7wNXLv22pC5Z4MFpx4fnH8w+e7UnvUtOKhdWb8Sj/UkqDX9XDQLRQGMCHwd9zqoLdsCu7d3LLvSANO+mNHSENp2ERGJm4h6aq21G2PdEOkHlH4skpJqPbWsa+y42DcYvlX/LTZN2cTc0rnt61tsCz9a9yNuHX8rJw8+Oey+5lXOC1hO1arH/oalD2Nw2uD2eXebbBMbGjcwKXtSN4+UHmttxoPl71OreH94I635j8Ly/4bd1GAYnDaY4RnDGZ4+nGEZwxiePpzhGc7v+e58GD4+8EHl26C5CTIye9au4KrHE2bAjg1QW9GxrrYSioYiIiLxpwJPEj1KPxZJScvql2H9RpGMzxpPdnU23x35XXLdudy59c72+zx4+PmGn/NQ6UPkunPJdmWT48ohx51DhslgVcOq9m1duDi68Oi4/i2xYIxhWs403q9+v33divoVCmpjoaWZB6ZU88DUti9Fd0HDrl7tKteVy6jMUYw7tJaxu1sZX5fOuNo0xm5fRv64/Xq2s+CgdtpBUFcVGNTW7FZQKyKSIBEFtcaYzXQ9btZaa8dFp0mSsrJywbjAep3lpnonHasv1StFJOaCU4/3ztm7/fcLh19IrjuXX236VXvga7GsbVzb7X73y9uPQemDotvYBJmWHRTUNqzgFE5JYIv6px3eCh7aIzpZPnXeOlY1rGLVUMA/1iz/NkOqhjA2ayzFacXkuHPIdmU7X9D4fs9x5ZDtzmaPrD2Y6BkMm1cG7nzKLGd6n1K/df4BroiIxFWkPbVv0hHUGuCbwItAeSwaJSnK5YLsvMC044YayB+cuDaJSLdCgtrcvQOWzyo+i1xXLjdvuBkPkY8lPbbo2Ki0LxmoAnJ8/DVvEU1psa89Wd5aTnltZJcwN3A63/D/Xn/ERCgsDv1sq9kdxRaKiEhPRDqm9pK2340xaThB7a3W2k96cjBjzBjgEWA4TpA811p7V9A2BrgLOBmoBy7p6XEkgXIKAoPaumoFtSJJzFobNqgtDeiCguMHH0+uO5efbfgZVZ6qbvdbklHCSYNPimpbEylcsSiv9eIyvZnuXcJZVreMl/ICMwCudp3MEVMuCrt9q22lrKWM0pZSdjbvZGfLTkqbS9nZspOdzTtpsk1hH9dTd9r/sn/BcKZW+4pWTfVVAFdQKyKSNHozprYvX6G2Aj+w1n5ijMkHFhtjXrfWLvPb5iRgsu92MHCP76ekAlVAFkkppc2llLd29Fhlmkz2yN4jJKgFOLzwcF7d51VKm0tp8DRQ7613bh7nZ4OngTpvHbmuXI4uOpqCtIKQfaSqERkjKHAXUO1x3tPqvfVsbtrMuCyNvIkGay1/2vqngHWTqtP55tATSMuZ0qv9VbRWsLFpIxurlrNxwVw25rayMa+FLbmttPbguwiPsdy6XzmPvFNCujVdBLVKPxYRSZS4Foqy1m4Htvt+rzHGLAdGAf5B7RnAI9ZaC3xgjCkyxozwPVaSXUgFZBWLEklmX9Z/GbC8V+5epJnOPxrSTTpjMsfEullJxxjDnjl7sqhmUfu65fXLFdRGybzKeXxa+2nAuv9bWkTacdm92p8xhsHpgxmcPpj98vaDzW+296S2Gsv2y37EpnxLrafW+ULG29D+5Uyjt5HdLbt5vfL19v2tKmzhgSlVXFE6GUrGOyvzg8aLq6dWRCRh+hLU9mnQizFmPLAfsCjorlHAZr/lLb51CmpTgXpqRVJKV0WiJNC0nGkBQe2K+hWcOPjEBLaof2j2NvPnrX8OWHf4jiwO3ZUN6X2cp7bNiIntQWeaNYzZ1ciY0V1PN5W2Po1XKl5pX/7H5GqOHjKePY1vflqlH4uIJI1Iqx+/E2b1A8aYWt/v1lob8bwNxpg84D/A9621vYp6jDGXA5cDDB8+nPnz5/dmNzFRW1ubVO2JpwllFfj3W6xf9gUb63v3TXu0DeTzksx0XhJrQc6CgE8Cs8Ewf818nZcwPGkeyOlYXrhtIfuu2TeubeiP52V+xny2Zm1tX3Z74ftLnV7QT75YQvXGvtekHN/kYrzf8paP32VNVdc5yIdxKB9mvEZ5llMczeOCGwvmc+38g0gjjYymOg7z275l904W9LNzk+r64/9Lf6DzkpxS/bxE2lPrJbBn9u3eHtAYk44T0D5mrX0mzCZbAf/cttG+dQGstXOBuQCzZs2ys2fP7m2Tom7+/PkkU3viKqMKNn3cvjhh2BAmJMlzMaDPSxLTeUmcFtvCTZ/dFPDuft5B51GSUaLzEsakxkn8c9k/25c3pW9iyeQlnFl8JqMzR8elDf3tvFS0VHDLslvwL6p99sY8JtY6U8Htf9DBTi9rXw3Pgo0fti+OdjczurvncfMKcl8cxPUHl7Wv2ppRzsoxK7l61NXg9cAH/2ifxi69tZHZhx8Wvd5l6bP+9v/SX+i8JKdUPy+RVj+eHY2D+SobPwAst9b+qZPNXgC+Z4x5EqdAVJXG06aQ3MLAZaUfiyStNQ1rAirEDk0fyvD04QlsUXIblTmKXFcudd46AJptMw/ueJAHdzzIwfkHc1bxWcwunE26S3NzR2pu6VxqPbXty3mtbr670u9zJC1KAWJJUGBcug68Xmcqus6s/Iijd+RwyuZcXhpT17764R0PM7toNtNzp0NeUWDacW0FDNL/kIhIvMV7LoLDgYuAOcaYz3y3k40xVxhjrvBt8zKwDlgD3AdcFec2Sl+EFIpSUCuSrL6sCywStXfO3pi28YISwmVczC6aHfa+RTWL+PH6H3PSkpP485Y/s7FxY3wbl4LWN6znP7v+E7Duso0lDGp2d6yIVlBbNBSy8jqWmxuhIrTCd4AVTs/uDUsGMbSho00ePNy68VaavE2qgCwikiQiHVPbdTUFwFr7VgTbvAd0ecXkq3p8dSTtkiQUUihK1Y9FklW4+WmlazeOuZE8dx7/Lf8v9d76kPsrWit4dOejPLrzUU4dfCo/Hvtjsl3JUVcg2dy59U48fnnHozJG8fUNhUBHz23UUnmNgRETYL3fFznb18OQkeG3L98GZVsAKGhxcfOXxVx30I72u9c1ruPv2//OtXGugGytpc5bR42nhprWmvasgWRlraXZNlPnqaPWU0ud1/lZ66ltX2ex5LnzKHAXUJBWQL47nwJ3Aflp+RS6C8lx5+DqZR/MLteubr9gSjNpjMwYqS/0RFJcpGNq38AZdWUIrXrcts4d/CAZgFT9WCRlKKjtuVx3Lj8a8yO+N/J7vFbxGs+UPcPS+qVht31x94usbVzLHyf+keEZAysltbq1mjpvHYPSBpHlygq5f2H1QhZULwhYd92o68houT9ww7QopnKXTAwMakvXwd6Hh9925UcBi0dkz+L0IW5eKH+hfd2jOx7lmMGnMsN/wygEtc3eZj6t/ZQF1QtY07CGak91exBb46nBi7fPxxgw8gicNLIT4zLH8fcpf2do+tCYN0lEYiPSoPaYoMe8DlwBrIx6iyS1KaiVBGm1rbxX9R4e62GvnL0oySjRN+9dqG6tZmNTRw+GCxd75eyVwBallhx3DmcWn8mZxWeyqn4Vz5Y/y8u7Xw4YHwrOXLYXrbiIP0z8A/vk7ZOg1sZGk7eJLU1b2Ni0kY2NG9nUtImNjRvZ2LSRytbK9u1yXDnOnLFpvlv6YD6qCQwa98vbjzlFc6D1nsCDRCv9GJyeWn/b13W+7coPA5enHsT1o45mUfUidrQ4PbZevNwy+D1uGZTekYLWsBRqx7Y/LMOVwdD0oQxKG4TLdN7buL15O+9Xvc+C6gV8WPMhDd6GHvxh0lcbmzby/7b+P24bf1uimyIivRRpoaj2asfGmLYe2Y+ttZ/EpFWSujKywJ0GnlZnubUZmpsgIzOx7ZJ+7yfrf8JblR2jIIakDWFG7gxm5M5gn9x92DNnT7LdSgNts6Q+sJd2YtZEctw5nWwtXZmSM4Ubc27k2lHX8mbFm/yj9B8BXxiUt5Zz+erLuWnsTZw+5PQEtrTvWrwtvLT7JZ7c9SRrGtZgI5iyvt5bT31TPVuatnS6zfWjrsd4vU5F4XbG+TyJluAqytvXgbVOarK/L9+FjUHde1MPJD8tn5vH3cw1a65pX73RvZtLj/Tf8N+w6t8hh3bjpji9mGEZwxiWPoyh6UMZmj6Uak8171W9x9rGtX3726TP3qh4gx+O+SH57vzuNxaRpBPFTwsRnIuDnILAFKz6ashQSo/EzubGzQEBLTiBxPyq+cyvmg84F5V7ZO/B9NzpTMqaxISsCUzMmkhxenG/6dHd0LiBx3c+TlFaEZeVXEamq/Mvk4JTj2fkzuhkS4lUtiubU4ecyuyi2dy8/mberX63/b4W28IvNv6CNQ1ruHbUtaSZ6H781rTW8Gndp3xc8zGLaxazvnE9wzKGceKgEzltyGmMyhzVp/03e5v5b/l/eXDHg2xvju6EBKcMPoW9cveCpqDeybT00ICzL4aMhPRMaPFV/K6vdj6rCoZ0bLNhKTz3l8DHjZjYXtH4sILDOGvIWTxb/myPDu3Bw46WHe29vH2R5cpyxpy688l15/Z6vGm8pJk08tx55LnzyHXntv+e584j15WLMYZaTy3VrdVUe6rbf9Z4aqhqrepTr3V9fT05OZ1/WbejeUd7Bfgm28Sru1/la0O/1uvjiUjiKKiV6AsX1BYpqJXYeafqnW638eBhZcNKVjYEjprIc+cxMWsiE7ImMCFrAnvm7Mn+eft3mSqYjFptK9euuZatzc603hsaN/C7ib/rdHuNp42dPHcef5z0R+7Zdg8P7ngw4L7Hdj7G2oa1/HrCrylIK+hkD92r8dTwae2nLK5ZzOLaxaysXxky1nJz02buK72P+0rv46D8gzh9yOkcU3RM2DGunWnyNvF8+fM8VPpQjwKydJNOgbuAytbKgGJQwQalDeLqkb7akK0tQTuJ8nyvLjcMHwdbVnWs276uI6jdtQWe/E1HphGAKw1OvCxgN98f/X0+qPkg6sG9v6HpQzms4DAOLTiUERkj2osn5bnzNGVUD8yfP5/ZB87u9P6/b/s7c0vnti8/X/68glqRFBVp9WP/nJ229ONRxpjKtpXW2i4Gp8iAEjKtjyogS2z594gBGExEaZEAtZ5avqj7gi/qvmhft3fO3twx4Y4+927F0+qG1e0BLcCblW/ycc3HzMqfFbKttVZBbYy5jZvvjfoee2TvwW0bbwuYD/iDmg+4eOXFfK34a51mCbTaVmo9tVS1VlHtqW7/uSNvB7d+fis1np69r35Y8yEf1nxInjuPEwedyBlDzmDPnD07PX6jt5Fnyp7h4R0PU9ZS1ul+SzJKGJc5jnFZ4xibObb995KMEtzGjbWWGk8N5a3lVLRUOD9bKyhvKSfdpHP8oOM7imi1NgfuPJrjadsbPDE0qJ16INRWwmO/hMbAMdGccTWMCxxrnufO457J9/C3bX9je8MW2Lam406XC0ZNbl+s99Szs2Vnt+fLhYt9cvfh8MLDOaLgCCZnT+43GSTJ7PQhp3Nf6X3tnxfL6pexun41k3Mmd/NIEUk2kfbUriG06vFzQcuqfiwOFYuSOKrx1PBJTeDw/qf2eopGbyNf1n3JkrolfFn3JZuaNkW8zyX1Szh/xfncMvYW5gzqdkazpBBuvOJdW+/i4akPh/Q6b2neQpWnqn05x5XDhKwJwQ+XKDhx8ImMzRzLD9b9gJ0tO9vXb2raxJ+2/qnnO3RBFx2f3ar11PJ02dM8XfY0ua5c3Cb8R3eTtykgEPeXbtI5q/gsLh5+MSUZJV0ezxhDQZozVUu3r7GQoDYGPZLB42pL1ztz1j7+K6jcGXjfMefDzNlhdzMmcwy/nvBr8Hrh6fPA69e7e9O9Tn0JPw3eBnY172JXyy52tux0fjbvxIuXfXP35ZCCQ/rUcy+9MyJzBAflH8SimkXt654vf54bcm5IYKtEpDciDWq/FdNWSP8S0lOroFZi54PqDwLSG8dnjm+/eN4zZ0/OHXou4MwfurRuKWsa1rC+cT3rG9ezrnFdp+O1aj21/HD9Dzmv9jy+P+r7ZLhi0GsUReGC2mX1y3ij4g2OH3x8wPov674MWN4rZ69Ogxvpu71y9+LRaY9yw7obQp77aJqUNYlZ+bM4IO8ApuVMY1HNIp4vez6kKFibns5xmmkyObv4bL45/JsMyxgWjSYHCk4/jkVPbXBQu20t/OdPgb2tAPt9BY6KIA3V5YK8Iqj2682uqYAhIwI2y3ZlMzZrLGOzxiLJ5cwhZwYEtS/vfplrR12b9O/5IhIo0urHD8e6IdKPqKdW4ujdqsDU4yMLjwy73aC0QRxReARHFB7Rvs5rvexo2cH6BifAfb/6/YCLG4B/7foXn9d+zm8m/IYxWWOi/wdEyeamzWHX373tbmYXzQ64QFORqPgrTi9m7uS53LHpDv67+7993p/BMD5rPLPyZjErfxb75+3P4PTBAducnXk2ZxefzdqGtTxf/jwv736ZitaKHh8ry5XF14q/xkXDL6I4vbjPbe9US1DPcCyC2mFjnbG1bVWWq8sCA1KASfvBqd+NvEhV/uDAfdSGBrWSvI4uOpoCdwHVHudapcpTxfyq+Rw/6PhuHikiyaRHhaKMMS5gL2AIzpQ+PfuaVwaGkKBWY2olNjzWw3tV7wWs6yyoDcdlXIzIGMGIjBEcVngYFwy7gMd3Ps5ftv2FVtuRTriiYQUXrLiAm8fdnLQXOp1Nl7K1eStPlz3N+cPOb1+n8bSJkeHK4JZxt3DKkFN4v+p9WmxLp9saY9qLAxWkFVDoLqQgrYAVi1fwlcO+Qr47P+IKypOyJ3H96Ou5ZuQ1vFv9Li+UvcD71e93WcAJIN+dz9nFZ3PhsAtDAuaYiHWhKHBSmoeOgR0bwt8/fDycc0PPphLKHxS47F8oUZJepiuTkwafxL92/at93fNlzyfte72IhBfxu7Yx5mrgFqAYZ3ztgcAnxpjngLestX/p4uEykKinVuJkSd2SgLGh+e58ZubN7PX+jDFcMPwCZubN5Cfrf8K25m3t99V56/jJ+p/wcc3HXD/6+h5VkI2HruYAvX/7/Zw2+DTy0/Jp9jazqmFVwP0KauPHGMOB+QdyYP6BvXp8ubecQWmDut8wjHRXOnOK5jCnaA7N3uZup0rJd+fHtwp4PApFgZOCHC6oLRgCF9wMWT2crzk/KOBXUJtyzhxyZkBQu6hmEdubtjMiUz3uIqkiok8rY8x3gLtwikOdC/jn5LwLfDXqLZPUpTG1EifBU/kcVnBYVOb/3Dt3bx6f9jhzikKLRP2n7D9ctfqqgJ7cRGv2NgcUITIYclwdF+ZVnioe2vEQACsbVgb0EJZklMQ2pVSSUoYrg8K0wi5vcZ/WKh6FogBKwhSsysyBC34WOGdtpBTUprwpOVPYM2fP9mWLjcowARGJn0g/sa4H/mitvRwInnF8BTA1qq2S1Kb0Y4mTSMfT9kZ+Wj6/m/A7bhxzI+km8OL687rP+bz286gdq6+2Nm8NmMJoeMZwvjn8mwHbPLHzCUqbS0NTj3PUSytJIh6FoiBgyh3AGWN77o+cOWx7IySo7fm4ZUm8M4acEbD83/L/4rXeTrYWkWQTaVA7AXi1k/vqgKKotEb6B6UfSxxsa9rG2sa17ctu3BxWcFhUj2GM4dyh5/LQ1IcYlRE4Z21wCm8iBReJGp0xmguHXciQtI5epybbxL3b7g2pvqsiUZI0WuKUfjx6Ckza1/ndnQ5nXgOTej9sQT21/cOJg04k02S2L29r3sZHNR8lsEUi0hORBrVlwPhO7psKbI1Ka6R/yA5OP64BGzzNsUjfBPfSzsybSWFaYUyONS1nGl8tDhxlsb5xfUyO1RvB42lHZ44m253NFSOvCFj/4u4XWVi9MGCdxtNK0ghOP45FoShwqhpf8DP49m/h2r/BPkf3bX8qFNUv5Kflhww5eb78+QS1RkR6KtKg9kXg58YY/wnerDGmGPg/nLG2Io6MTEjv+LYTbys0dV2QRKSn3q2OXepxOBOyA8fhrW1Y28mW8RcuqAU4fcjp7XP2gjNOrG3aCnB6t6flTItPI0W6E68xteDMLzt6ChRGYTy5emr7jTOKA1OQ51XOo6q1qpOtRSSZRBrU3gw0AUuAN3CqH/8FWA54gNti0jpJXUpBlhiq99Tzcc3HAetiHdROypoUsLyucR02STIQgoPaMZnOfLppJo1rR17b6eMmZ09OuirOMoDFa0xttGXn4TXujuXmRn2Rm6IOyDsgYKhJs23mld2vJLBFIhKpiIJaa20ZMAv4NZAOrMWZDuhu4FBrrb7GkkCqgNzvWGup99QnuhkAfFDzQUAF39GZoxmfOT6mxxyRMSIgAKz2VFPWWhbTY0aqs55acIL9/fP2D/s4pR5LUonXlD7RZgxNmbmB69Rbm5JcxhVSMOqF8hcS1BoR6YmI576w1tYAv/TdRLqmCshxtblpM/duu5etzV0Pby9wF3BIwSHMKZpDSUZJt/u11rKsfhkv7X6J1ypeo6K1ghMHncht42/D7d8zEWfvVb0XsHxkwZEYYzrZOjpcxsXErIksq1/Wvm59w3qGpg+N6XG747GekPPuH9QaY7hu1HVcvPLikMcqqJWkElIoKobpx1HWnJFLdqPfl7c1FVA8qvMHSNI6bchp3Lv9Xrw4lY9XNqxkef3ygCl/RCT59H1CR5FwlH4cNy3eFq5dcy2bmjZFtP2C6gX8ccsfmZ4znWOLjmVO0RzGZI0J2GZ703Ze3v0yL+1+iY1NGwPu+1/F/zi44GBOH3J61P6GnvBab0hQe1ThUXE59oSsCQFB7drGtRxUcFBcjt2Znc07A+bMLUorIs+dF7DN3rl7c1zRcbxe+XrAelU+lqQSnH4cq0JRMaCe2v5jWMYwDi04lAXVC9rXPV/2PHuOVVArkswiCmqNMe90s4m11vaxfKD0K0o/jptnyp6JOKD1t7R+KUvrl/KXbX9hcvZk5hTNoTi9mP/t/h+Laxd3+diHSh/ilMGnJKS3dln9Mspby9uXc1257Je3X1yOHW5cbaJtbg6czqdtPG2wq0ddzbyqee0B8JC0IYzNHBvz9olErLUpcDlV0o+B5ozAL5IU1Ka2M4acERDUvlLxCucPO580k5x9QS22hWpPNZWtlVS3VlPlqaKq1XfzVFHnqQuYyzzRdufs5j9r/pPoZvSIwTAuaxz75e3Hfnn7MShtUPcPkriK9L/zCKAc+BKIbY6f9A9KP46Lek8995fe3+f9rG5YzeqG1RFvv7FpI29Wvsnxg47v87F7Kngqn0MKDiHdFZ80xYnZEwOWk6ECcsh42ozRYbcbkzmGn479Kb/a9CsyTSY/HPNDXCbSWoEicRBSKCp10o/VU9u/HFV4FIPSBlHRWgFAraeWs5adleBW9SNpQAr2dSyoXsDjOx8HnC+598/b37nl709xehQqqUufRBrU3gecD+QD9wKPW2tV2k86p/TjuHh85+Psbu24eMpyZXHnxDvDVrT14uXLui95q/Itvqj7IuJjuHFzROERNHgb+LDmw/b1/yj9B8cVHRfzsazBgoPaeKUeQ2hP7frG9Vhr4/4c+OuqSFSw04eczkmDT6LVtpLtyo5100R6JqRQVGb47ZJQc0ZwUFuRmIZIVKS70jl58Mk8tvOxRDdFktTaxrWsbVzLU2VPATAucxzDM4b3aZ8jMkZw+YjLI6p5IqEiCmqttd81xtwAXARcB/zBGPMocI+1dnksGygpSunHMVfZWskjOx4JWHfBsAu6HOO5b96+XDT8InY272Re5TzerHyTT2s/bS+I4W/vnL05ZcgpHDfoOAalDWJD4wa+tuxr7SlMqxtW827VuxxVFL+gcmfzTlY2rGxfNhgOLzg8bscvySghy5VFo7cR6KiAnMhiUT0JagHSTTrpJnV6wGQASeFCUeqp7X/OKj6Lf+36V0DNApHObGzaGFKDpDcW1Szivsn3MTJzZBRaNbD0tPrx34C/GWOOAK4FlhhjjrbWvtf1o2XAUfpxzD1U+hB13rr25UJ3IRcNvyiixw7LGMZ5w87jvGHnUdFSwfyq+bxb9S4N3gZm5M7glMGnMC5rXMBjxmeN59iiY3mj8o32dQ+UPsCRhbGvPNwmuJd2Ru4MBqXHb1xLuArI6xrWpVRQK5K0UrhQlMbU9j8Tsibwy3G/5NGdj7anIScrFy4K0wopcBdQmFZIUVpR+++F7kLy0vJwk7gZC4J98eUX7DNjn0Q3o0fqvHV8UfsFn9R+wqqGVTEbo1zaXMoVq69g7pS56rHtoR6PeDfGjAaOxxlnuxlnrK1IIKUfx9SO5h38a9e/AtZdUnIJ+e78Th7RuUHpgzir+CzOKu5+vNBlJZcFBLVL6pfwUc1HcasAHBzUHll4ZFyO6y8kqG1cx8EFB8e9HeBMubS5KbJCUSJJL1XnqSVc+vFusBYSODRB+u74wcdz/OD4147o71paWzi8MH5ZVtHSVkekprWGz+o+49PaT1lcs5jl9cvx4InacbY2b3UC28lzGZYxLGr77e8iDmqNMScAVwEnAW8A3wVestaG5i2KKP04puZun0uz7bgAHJY+jHOHnhvz407JmcKRBUfybnVHcHl/6f1xCWqDx/RCYoLaSdnJUwG5orWCem99+3K2K5vBaYMT1h6RPgkJalMn/bg1LcMJwtv+htZmaKyH7NyuHygiKSc/LZ8jC49svwap99SzqmEVTd6mbh7ZuWfLng2Ydm9z0+b2HlsVoYpMpFP6rAEKgYeAHwDr/O5zASi4lQDZQUFtQy14veBStdW+Wt+4nhfKXwhYd/mIy8MWh4qFy0ZcFhDULq5dzOe1nzMzb2ZMj/tRzUc02Y4PjJKMEvbI2iOmxwxnQtaEgOVEVkAOST1OK8H87x9OpsRhZ6RU+qZIaPXjFHr9GgP5g6GitGNdzW4FtSIDQI47h33z9u3TPg7IPwDvei9vVr7Zvm5j00auXH0lcyfPjetQq1QVaYQxERgCXA+sBFqCbs2dP1QGpLR0yMzpWLZeaKzrfHuJ2D3b7gko7DQucxynDTktbsefkTuDg/IDe2YfKH0g5sd9rypw6P6RBfEby+sv3Fy11iZm/r+QoHZbBSx6EeY9Dq89mJA2ifRaSKGoFApqwQlq/dUm9zhMEUkeaSaNX034FUcXHh2wfl3jOq5ccyWVrZWJaVgKiTT9+BcxbYX0Tzn50NSRGkl9dWhasvTI0rqlAd/iAVw18qq4Twh/acmlAanAC6oXsLx+OXvm7BmT41W2VvJ21dsB6+I5lY+/kowSsl3ZNHidWc1qPDUJq4C8pTkwqB1T6TemZ81n8W2MSF8Fpx+nWqZBcFCrYlEi0gPpJp3fTPgNN6y7gQXVC9rXr25YzVWrr+LeyfdSkFbQxR4Gtkin9FFQKz2XUwAVOzqWVQG5z/667a8By3vm7MmxRcfGvR2z8maxT+4+AfPdPlj6IL+b+LuoH+vz2s/5yfqfUNZS1r4uy5XFAfkHRP1YkWirgLy0fmn7ukRVQA4uEjW6zu8t3f8LJZFUEJJ+nDpjagHID0oPVFArIj2U4crg9xN/z/Vrr+eDmg/a169sWMnVa67mpMEnxezYazLWsG3nNmblzWJKzpSYHSdWelP9OA8nFXmbtbalu+1lAFMF5KhaVL2IRTWLAtZdM/KahKTgGmO4rOQyrlt7Xfu6tyrfYl3DOiZmT4zKMay1/HPnP/l/W/9fSFXBEwadQKYrMyrH6Y0JWRMCgtq1jWsTUgE5JP24zi8IUFArqSaFqx8D6qkVkajIdGXyx0l/5Ptrv89HNR+1r19Wvyxg9oWoywK2wI1jbkzJoDbiqj3GmFONMZ8AVTiFomb41t9vjDk/Ru2TVKYKyFFjreXubXcHrDso/6CETSUDcHjB4UzNntq+bLE8uCM64zirW6v5wbof8Oetfw4JaGfkzuD7o74fleP0VkgF5IbEVEAOCWrr/b6n9LSG9nyJJCtrU7r6MaCgVkSiJsuVxZ0T72T/vP0T3ZSUEWn14zOB/wBvAjcC/jmG64GLgcej3ThJcSE9tQM3/Xh783bmVc6j1lPbq8eXtZSFfDv3vZHfi0bTes0Yw6Ull3Lj+hvb1726+1W+O+K7jM4cHbCttZYqTxUVLRUMSh9Eobuw0x7mJXVL+PH6H7O9eXvIfRcOu5Dvjfoe6SaxF7sTswJ7oxMxrU+dp47drR0XzW5cDG9wB27U1JB6gYEMTMFfwLjSwOUOv22yCglqVShKRHov253Nnyf9mWvWXMPndZ8nujlJL9L041uAB6213zbGpBEY1C7Bmb9WJJDSjwHY3bKbi1dcTHlredT2eWzRsUzPnR61/fXWnKI5TMiawPrG9QB48PC7zb9jz5w92dG8gx0tO9jRvIPS5tKA6Xjy3HmMzhjN6MzReDO9VJRVMDpzNKvqV/GXbX+h1bYGHCffnc8vxv2Co4sCqwImSmcVkOOZCh7cSzvKDiLNBh2/qR5yVVRCUkBwUJtqRaJAY2pFJOpy3bn8bfLfeKbsGbY2bY3psbZu2cqo0aOYnD05pseJlUiD2j2BH/l+D567ogJnjK1IIKUfA86E2tEMaF24uHLElVHbX1+4jItvDf8WP9/48/Z1C6oXBFTtC6fWU8uKhhWsaFgBmfDWprc63XZ6znR+M+E3jMwcGbV299XwjOGhFZBbyhiaEb9iUSGpx94inBnW/DQ1xK09In2S6qnHED792FpnDlsRkV7KcmVx/rDYj/Scv3Y+s8fMjvlxYiXSMbXVQHEn940HdkWlNdK/qKcWay2vVLwS1X1+Y9g3mJA9Iar77IsTBp/AqIxRMdn3N4Z+gwemPJBUAS10VED2t7ZxbVzbEBLUtoaZLqtZQa2kiFQvEgWQmQ0ZWR3LnlZoGLjDbkRE4inSntrXgZ8YY14B2t6hrTEmE/geEN2rdukfFNSyqmFVe2ougBs3l5RcgivyGm0B9sjegzlFc6LVvKhIM2l8d8R3A3prw8lyZTEkbQhlLWUBqcjh5LnzuGXsLcwZlFx/q7+QaX0a13FIwSFxO37wHLWjm3OBoHRHVUCWVNEfglpwemvLt3Us11SEfhaKiEjURRrU/hT4EFgJvIyTgvxjYB+gEDgzFo2TFBeSfjzwvrF+ZXfg9z2HFBzCVSP73xD0U4acQpNt4v2q98l2ZzM8fTjDM5xbSXoJwzOGU+AuwBiD13opbylnS/MWNjdtZsGqBbhL3Gxp2sLOlp1MyZ7Cj8b8KKTYVLIJnroo3hWQg+eoHdOYHbqR0o8lVbT0g/RjCB/UDh+XuPaIiAwQEQW11toNxpj9gV8AJwAe4Cjgf8DPrbXbunq8DFADvKfWa728WvFqwLpYTpqdaGcXn83ZxWd3u53LuBiaMZShGUPZL28/CpoKmD1hdszbF22JroAckn7cEKZnS0GtpIr+UCgKNK2PiEiCRNpTi7V2C3BZDNsi/U12HmBory3WWOeMMXJH/LJLaZ/UfsLOlp3ty1muLGYXzk5cgySqElkBucXbwo7mHQHrRtaFmf5E6ceSKvpN+rEqIIuIJEKPB/YZY0YaYw40xiRX5RZJPi63L7D109C7eVpTUXDq8ezC2WS7w6SISkoqySghx5XTvtxWATketjVvw4u3fXlY+jCymppDN1RQK6miP1Q/BvXUiogkSMRBrTHmm8aY9cBm4ANgszFmvTHmwpi1TlLfAE1BbvY282blmwHr+nPq8UBkjGFCVmAV6nhVQA4eTzs6czQ0N4ZuqPRjSRXB6ccp21OroFZEJBEiCmqNMd8DHgJWA98BTvf9XAM8bIy5OlYNlBQ3QOeqXVC9gBpPR2GsorQiDi44OIEtklhI1Lja4PG0YzLHhA9gNaWPpIqWoIro/SaorUhMO0REBphIBzf+AHjIWntp0Pp/GGMeAm4A/hrNhkk/EdJTOzAqIP9v9/8Clo8rOo50k6LpdNKpRFVADikSlTkamsMcW+nHkipCempT9P0yT2NqRUQSIdL04xLgyU7uexwYHp3mSL8zANOPaz21vFv1bsA6pR73T+GKRcVDSFCbMTp8T63SjyVV9Jvqx0FBbW0FeL3htxURkaiJNKj9EpjUyX2TgSXRaY70OwMw/fityrdosh2pdCMzRrJP7j4JbJHESnD68drGtVhrY37ckDG16SNCC+2AglpJHa39JP04IwsyOwrI4fUMiM89EZFEizSovQ74sTHmHGOMG8AY4zbGnAv8ELg2Vg2UFDcA04+DU49PHHRiXKZ5kfgLroBc66llV8uumB7Ta71saw6cGny0a2j4jZV+LKmivxSKAo2rFRFJgEiD2n8DRTgpyA3GmB1AA/AEMAj4tzFmk++2MSYtldQUHNTu3g5x6MlKlLKWMj6q+ShgnVKP+69wFZBjnYK8s2UnzbajV7bQXUhBayflEdRTK6mipZ/MUwuhQW2txtWKiMRapIWi3gT6byQisZNbGLi86mOY9wQc8w3oh72Xr1W8FjB/6JTsKSHFhKR/mZQ9iaX1S9uX1zWu45CCQ2J2vPBFojoJXlX9WFJFf5mnFtRTKyKSABEFtdbaS2LcDumvxkx1emv9xxS985Tzsx8GtsGpx+ql7f9C5qptiO1ctWGD2s56ZJsanMyIfvZ/Jv1QfykUBaHFolQBWUQk5iJNPxbpnew8OP+ngYUzwAls5z3Rr1KRNzVuCuixMxiOH3R8Alsk8RDvCsghRaIyR0NzY/iNrTd0/k+RZBTSU5vKQW1wT62CWhGRWIs4qDXG7GeMecYYU2aMaTXG7O9bf4cx5sTYNVFS3ugpcNEt4QPbtx7vN4Ht/yoCe2n3z9ufkoySBLVG4iVkrtrGdTGtgNyj9GNQsShJDQpqRUSkDyIKao0xRwALgWk489L6P84LXBH9pkm/0llg++7T/SKwtdbyyu5XAtadOFjf9QwEJenxrYAcHNSOyRzTdUEoFYuSVBBSKEpjakVEJHKR9tT+BngVmA5cH3TfJ8D+0WyU9FOjp8A3b+2Xge3y+uVsatrUvpxm0ji26NgEtkjiJVwF5LWNsRlXa61lS3NQT21GF+nHoKBWUkO/mtInSmNqW5qhsS6lPxtFROIl0urH+wNnW2utMSb43bUM6GSSRJEgoyY7ge0jtwamRb77tPPhPXpK548dVOIUnkrCojevVAT20h5ecDiFaYWdbC39TUgF5IZ1HFpwaNSPU+mppNZT276caTIpTi/upqdW6ceSAoLTj1O5UFRecFBbAf/+PUw+ACbvD3lF4R9nLezcBGs+hbWfwcZl4GlxPvv2nQP7HgOFxbFuvYhISoo0qG0Ecjq5bwRQFZ3myIDQWWD70SvOrStHnwfHfD2qzbHW8kblG3xZ9yVe6+3+AWEEB7VKPR5YJmaFjquNhXDjaY0xXY+p1bQ+kgr605Q+6RlOkcSGti+gLCx737kBjNzDCW4nHwBFw2D9lx2BbG2YVOWKUpj3uFNccdJMJ8CddnD4wL+xHrauhs0rYPNKJ0j2enr/txgDJePhtKsUUItIUos0qH0P+L4x5nm/dW09tpcBb0W1VdL/dRbYdmfRizD7vKj21j5b/iy/2vSrqO0v15XLUYVHRW1/kvziVQE5bJEoUPqxpL6Q9OPMxLQjWvbYH758J/x929Y4t7f/3cOdWifwXfsZZOXC3kfC9MOhuqwjiN2xkY7LsyhZUwGvPQTn3BDd/YqIRFGkQe3PgAXA58DTOO+YFxtj/gQcABwYm+ZJv9abwLaxzhmfVDAkas14dferUdsXwDFFx5DlyorqPiW5TcgOnavWWuv0okZRp0Gt0o8l1QVPPZXKPbUAJ38HsnJg6fuB87T3mCFskNpYBx//z7nFw/bYTlUmItJXEQW11trPjTFHAb8HforzLvs94F3gaGvtytg1Ufq1UZPhO7+DD1+Bxtrw26z9HOoqO5bLtkY1qF3fuD5q+8pyZXHJ8Euitj9JDSXpJeS6cqnz1gFQ561jV8suhmUMi+pxws5RC91M6aOeWkkB/alQFDjpx6d8F076NmxbC6sXw+pPnB7arqRnwYS9YdJ+TqpxTgEseRc+fQu2x6YAXURqKxN3bBGRCETaU4u19hPgWGNMFjAYqLTWqgtA+q54FJz87c7vf+Yu+GJ+x/KuLTBxn6gcuqa1hvLW8vblNJPGdaOu69W+Mk0mhxYcysjMkVFpm6SOtgrIS+qXtK+7bdNt/HjMjzsCzygIO50PKP1YUl9/KhTlz+V2CiCOngLHfMMpGrXmUyfIXfuZk0lRMtEJYPfYD8ZMC+2lPuhk51a6AT57C754u+ve3+LRzn7GTHWOm53fi4ZbuPO74G11FpsboLkJMlI8LVxE+q2Ig9o21tpGYFsM2iIS3tCgoKBsS/jtemFD04aA5bGZYzl/2PlR278MHJOzJwcEtQurF3LusnO5tORSvjn8m2S4+n6RrvRj6bf6U6GoruQPgv3mODdrnZsrwtkVS8bDiZfCVy6CVR/D5/M6MpfGTIPRviA2pzdBbBi5hVDT8aUvdZWQMTw6+xYRibKIglpjzG3dbGKttbdEoT0ioYpHBS6XbY3aroNTj4PnGxWJ1FnFZ/Hy7pdpsh1jA5tsE/dsv4eXd7/MjWNu5OCCg3u9/7KWsoCsAjduSjJKnAWlH0uq62/px5EwpndFD9PSYa9DnVss5RUFBrW1FTBIQa2IJKdIe2pv7uZ+CyioldgICWqj11O7viEwqB2fNT5q+5aBZXrudB6d9ii/2fwbPqn9JOC+jU0buWrNVZww6AT+b/T/MTQ9sqm9G72NvFP1Dq/sfoUFVQsC7ivJKCHd+HqzugpcNaWPJDuPJ2jaGQPuHieSSbQFz6dbq9kbRSR59eRT4xBr7Yd9OZgx5h/AqcBOa+3eYe6fDTwPtEUaz1hru+sllv5u8AhnXFLbRU/NbmcuvqzOpk6OXHD6sYJa6YtJ2ZOYO3kuL+5+kT9v/TOVrZUB979a8SrvVb3HcYOOY3jGcIalD2NYxjCGpQ9jePpw8tx5ePHycc3HvLL7Fd6qfKu9+FS4Y7Xrckyt0o8lyYVLPY5y5XDphZCgNswcuiIiSSLeX4U+BNwNPNLFNu9aa0+NT3MkJbjTYFAJlPulHZdvdSon95HSjyXajDGcNuQ0jio8ir9u+yvPlD2D9ZuSo85bx3Plz4V9bJYriwyTQbWn6ylAsl3ZXDjswo4VSj+WVBacetxfikSlutyiwOU69dSKSPKKsDpBdFhr3wF2x/OY0k8EpyDv6nsKcpO3ia1NgeNzx2eO7/N+RQAK0wq5aexNPDj1QaZmT43oMY3exi4D2nGZ47hyxJU8vdfTHJB/gLPS6wmd49OfglpJdiE9tQpqk4J6akUkhRhrw0zqHbyRMV6ikH7s29d44MUu0o//A2zBqbB8g7V2aSf7uRy4HGD48OEHPPnkk31tWtTU1taSl5eX6Gb0KxPWLWDcpo/blzeOncX6iYf3aB/B52W7azt/yPtD+/Ig7yBuru1u+LhE20D4f/Hg4f2M93kl8xWaTBcBaBj53nz2a9mP/Vv2Z7R3NIbAtEx3axNHvndvp49vyshl4WFdTJnViYFwXlJRfzwv2fUVHPxhRwJXQ1Yhiw65JHEN6oX+eF6G7lzF9GWvtC/vKp7E0r1TK5GuP56X/kDnJTmlwnk55phjFltrZ4W7ryfpx6cZY0IC0TbW2n/0uGWhPgHGWWtrjTEnA88BYXNMrbVzgbkAs2bNsrNnz47C4aNj/vz5JFN7+oUiL/gFteNy3Izr4XMcfF5er3i9Y/Q2MK1oGrNn9Wyf0ncD5f/lWI7l+57vs7hmMaXNpexs2cnO5p3sbNnJrpZd7Gje0V45OceVw5yiOZw0+CQOzD8Qt3F3vuOqMnjPbzk9M6DnNtN6evX8DpTzkmr65XnZsRH8gtrs/IKU+xv75XnZUAx+Qe3QrLSU+xv75XnpB3ReklOqn5eeBLU/7eI+C/Q5qLXWVvv9/rIx5m/GmGJrbVlf9y0prjj6c9VqPK3EW747n9lFs8PeZ62lxlNDlaeK4enDI5/XNrhIVN4gqCjtWG5pdFKUXV0ExiKJFJw+r/Tj5BAyprYyEa0QEYlIpEFtXK72jTElwA5rrTXGHIQz5re8m4fJQBA8pnZ3KXha+zTtw4bGDQHLCmolkYwxFKQVUJBW0LMHBheJysqBjKzAYLe5EbJy+95IkVhQoajklDcocLm2MiHNEBGJREQRgbV2YzQOZox5ApgNFBtjtuDMbZvuO8a9wNeAK40xrUAD8HUbyaBf6f+ycp0P2LZCFV4PVOwIDXZ7IDioVZEoSUnBhaAysp2bf1Db1KCgVpKXCkUlp6wc54tjT6uz3NLkvJdkZie2XSIiYcR1Sh9r7Te6uf9unCl/REIVjwqsvrhrS6+DWq/1qqdW+ofgntrMbMjMCfxfUQVkSWYKapOTMc6XyVW7OtbVVSqoFZGkFNcpfUT6ZGj0xtVub97eXpQHoNBdyKD0QV08QiRJBY+pzcgOvehsqo9fe0R6Kjj9OC09Me2QULmFgctKQRaRJKWgVlJHSLGoreG3i0BI6nHW+F7vSyShQtKPs5ye2q62EUkmLeqpTVoaVysiKUJBraSOKFZAVuVj6TfCph+rp1ZSSHD6sQpFJY889dSKSGpQUCupI3j8bNlW6GUdMQW10m+EKxQVHNQGB74iySRkTK3Sj5NGcE+tpvURkSTV66DWGFNgjJlljMmPZoNEOlUwxEmtbNNUH1gMpweUfiz9RvCY2rZCUf7UUyvJLGRMrXpqk0bwXLXqqRWRJNWroNYYcwSwGVgEbDbGHBLVVomEY0xoCvKu3qUgq6dW+o3gXti2KX38aUytJDNVP05eeUWBywpqRSRJ9ban9nZgKXAm8Anwy2g1SKRL4VKQe6iipYIqT1X7cqbJZETGiL62TCQxmoKrH2eFGVOroFaSWEihKKUfJw0FtSKSIno7T+2+wPnW2peNMVXAM9FrkkgXohDUbmjaELA8Pms8LqPh5ZKiOpun1p/SjyWZBacfq1BU8ggOajWmVkSSVI+v5I0xLqAAKPWt2gFogk+JjyhUQA5OPdZ4WklpkRSKUk+tJLPWpsBlpR8nj3BjantZoFFEJJZ60z1lfD/1ribxp6BWJFDYQlGqfiwpRIWikldmduD5aG3Wl2QikpQiSj82xrwTZvUDxphaIDvMfSKxMbgEjAus11muLnc+YIMv4rugIlHSr4QUispS+rGkFhWKSl7GOCnIlTs71tVWQFZOpw8REUmESHtqvYDH7/Y2UOX7vRYIF/SKRF9auhPY+uvhuFpN5yP9Stj04+CgVj0rksRUKCq5hYyrrQq7mYhIIkXUU2utnR3jdohErngUlG/rWC7bAqP2iOihDZ4Gtjdvb1924WJc5rhot1AkfsIVigpep55aSWYqFJXcQsbV9m5+eBGRWIqop9YYc5QxJi/WjRGJSB/G1QZXPh6VOYoMly6gJEV5PdASVGQnPVM9tZJalH6c3EKm9VFPrYgkn0jTj+cBe8WyISIRCwlqI08/Dkk9zhzf9/aIJEpzUECbkQUul4JaSS0KapNbSFCrnloRST6RBrWm+01E4qQPc9WqSJT0KyFFonwF09IznIJqbTwtoSmeIskipPqxxtQmlbygWRs1V62IJKGeTOmjKXwkOQT31JZvB48noocG99ROyFZQKykspEhUlvPTGE3rI6kjpFCUemqTSm5h4HJtZUKaISLSlYgKRfncY4yp7uxOa+2cKLRHpHvZuc43x20pUN5WqCgN7cENQ+nH0q+EKxLV/nsONNZ1LDc1QE5BfNol0hPB6ccqFJVcgntqFdSKSBLqSVBbCuyKVUNEeqR4VOC4nrKt3Qa1HjxsbNoYsE7px5LSmhsDlzP8gtq2Xts2qoAsySpkTK3Sj5NKnnpqRST59SSovc1a+2HMWiLSE8WjYcOSjuWyLcBBXT5kt2s3rba1fXlI2hDy0/Jj1ECROOgs/RhULEpSR8iYWvXUJpXgKX3qKsFaZ5iDiEiS6MmYWpHk0YtiUTtcOwKW1UsrKa+79GN/CmolGVmrntpkl5kN6X5fmHlaA4c2iIgkAQW1kpp6MVftTtfOgOXxWeOj2CCRBAjpqfUPapV+LCkguJfWlQYud2LaIp1TCrKIJLlIg9oJwKexbIhIjwwNCmp3bXG+8e+Cemql31FPraS64KBWRaKSk4pFiUiSizSoHQGcFe4OY8w5xpiDo9ckkQjkDw5Mh2qq7/ZDdqc7sKdWQa2kvK4KRQUHtZrSR5JRa1PgslKPk1PwtD6aq1ZEkkykQe2vgemd3Len736R+HG5oHhk4LouxtVaa5V+LP1Pl4WiguapVfqxJCMViUoNIT21FeG3ExFJkEiD2pnAB53c9yGwT3SaI9IDPRhXW9ZSRqPp6NXKdeUyLH1YrFomEh9dpR9nBAe16qmVJBRSJEpBbVLKKwpcrq1KSDNERDoTaVCb1cW2biA3Os0R6YEeBLXrG9cHLI/PGo/RdASS6pp6kH6soFaSUYsqH6eEkKBWPbUiklwiDWqXA6d3ct/pwMroNEekB3owrc+Gpg0By0o9ln6hy0JRSj+WFKBCUakhZK5a9dSKSHJJi3C7e4G/G2OqgfuALcAo4HLgMuCq2DRPpAvhKiB3IlxPrUjKCw5quxxTq55aSUJKP04N6qkVkSQXUVBrrb3PGDMV+D/gev+7gDuttXNj0TiRLg0eAcYF1ussV5c5F+7BF/OEBrWqfCz9Qk/Sj1X9WJJRSFCr9OOkpDG1IpLkIu2pxVp7gzHmHuA4YDBQBrxhrV0Xq8ZJ4jV4G3h8x+O8X/0+zba50+3cxs1B+QfxnZLvkO6K00VJWjoMGg67t3esK98GIyeFbLqhcUPAsnpqpV9Q+rGkOlU/Tg0h6ceV4PU6MxGIiCSBiINaAGvtWmBtjNoiSeajmo/45cZfsrW587Gq/r6s+5LS5lJ+Me4X8SvCVDw6MKgt2xIS1NZ4atjVsqt92Y2b0ZlBqcsiqaireWpV/VhSQUvwPLUKapNSRqbzntL2RZrXA421kFOQ2HaJiPhEHNQaY3KAS4GjcXpqdwPzgAettbpa6kdqPDX8ZetfeKbsmR4/9qXdLzEiYwRXjrwyBi0Lo3gUrPqoYzlMsajgXtqxWWNJN0pxk34gOFDN7Kr6sXpqJQmpUFTqyCuC3X7vObWVCmpFJGlElDdijCkBPgH+AswCcnw/7wY+McYMj1kLJa7eqXqHc5ed26uAts39pffzfNnzUWxVF3zFolbnN7OouJHV1UuobK3EWtu+SXBQq/G00i94vdAS1FObntnxe7hCUX7/FyJJIST9WF84Jq2QcbWViWiFiEhYkfbU/g4YBBxprV3QttIYcxjwH+C3wCVRb53ETUVLBb/f8nterXg17P3nDj2XUwafgiE0rbjWU8tNG26isrWyfd2vNv2KoRlDOazgsFg1GYCawUX8ev8yXh3d1gv1KnzxKukmnSHpQyhOK6bGUxPwmPGZ42PaJpG4CE49Ts8KHN+Wlg7udPD4ggbrdeYEzchEJGm0Kv04ZSioFZEkFmlQexJwo39AC2Ctfd8YczPwm6i3TKLCWsu7Ve+ypH5JQO+lv1bbygu7XwgIStuMyxzHz8b9jP3y9uvyOHdOvJMrVl9Bk3UuUDx4uHHdjTww5QGm5Ezp898Rzqe1n/Kz6p+zfXRoWmWLbaG0uZTS5tKQ+9RTK/1CV0Wi/NfV+/WENdUrqJXkokJRqSNcsSgRkSQRaVCbB2zr5L4tvvslCT1d9jS/2dzz7xzcuLlo+EVcPuJyMl3dXwTvk7cPt4+/nR+t/xEWJ3iu99Zz3drreGjqQwzPiF6Geqtt5b7t9/GP0n/gxdvjx0/IVlAr/UBIkais0G0ys6G+2u8xDThJNyJJokXz1KaMvKD3DvXUikgSibQW+0rgok7uuxBYEZ3mSLS9VvFajx8zNXsqD097mGtGXRNRQNtmzqA5XD/6+oB1O1t2cu2aa0NSgHtrS9MWvr3q29xfen9IQDui3s242jRyvJ2PyZqcPZmp2VOj0haRhAouEhVc7RjCFItSTT9JMsHz1KpQVPLKKwxcVlArIkkk0p7aPwCP+ApCPQ5sB0qArwNfofOAVxLMfyqb7qSbdC4fcTkXDb+o19WBzx92PtuatvHErifa161pXMON627krkl39XoOW2stL+9+md9u/i113rqQ+y9Ym8/3lheR4TWQW0T99/9CmaeCspYydrXsoqyljI1rNnLNPtfgMppXT/qBkPTjMD21IdP6qAKyJBkVikod6qkVkSQWUVBrrf2nb0qf24D7/e7aAVxhrX08Fo2Tvtvdsjtg+bKSy8g0ob2vee48jiw8kpGZI/t8zP8b/X+UNpcyr2pe+7pFNYv4wbofsFfOXr3a55qGNQH7azMkbQi3jvkZh716L3h9F+x1leRs28zYcXsxNmts+7bzl88nPy2/V8cXSToR9dRqrlpJcsE9tUo/Tl65QT21GlMrIkkk4nlqrbVzjTH3A1PpmKd2pbW254MaJS4avY0BvZpu3Fwx4oqY91S6jZtfTvglV6y6giX1S9rXL6hewILqBV08smeOLDiSW8bdwqD0QTDlY/jynY47l38A43oXQIukhOAxtWELRWmuWklyCmpTh3pqRSSJ9Si6sdZ6rbXLrbULfD8V0CaxipaKgOVB6YPilnqb7crmz5P+zOjM0VHfd6bJ5MYxN3LnpDudgBZgz0MCN1r+gebklP4tOP1YPbWSikIKRSn9OGmF9NRWgdeTmLaIiASJqKfWGHNpd9tYa//R9+ZINJW3lgcsD0kbEtfjD0ofxF8m/YXLVl1GRWtF9w+IwOTsyfxq/K+YlD0p8I499nO+4W/71r9qF2xfByMnhe5EpD8IST/upPqxv+BAWCTRgsfUqlBU8krPgKxcaPRlgFkv1NeEzl8rIpIAkaYf3x+0bAETtKygNsnsbg0cTzsoLf5TeYzLGsfj0x7n9YrXwxZ46ok9svfgiIIjyHCFuejJyHIC2xWLOtatWKSgVvqviOapVfqxJDmlH6eW3KKOoBac3loFtSKSBCINav0n9kwDVgOnAUvCby7JILhI1JD0+PbUthmWMYwLhl8Q+wPteUhgULv8A5hzfuyPK5IIkRSKCql+rJ5aSTIhQa3Sj5NaXhGUb+1Yrq2A4eMS1hwRkTaRVj/e2Pa7Mcbt+3W7/3pJPsE9tYPTBieoJXEyZRa43B1jfHZthl1bYGj0x/WKJFxEhaI0pY8kuZApfSKfG10SILhXVsWiRCRJaMLOfiy4p3Zwej8ParPzYPzegev8e25F+pOQQlHhxtQGpx+rp1aSTEtT4LJ6apObgloRSVIKavuxAddTC+GrIIv0RxHNU6ugVpKLtbB1K7zyCvzvf+BtUaGolJJbFLisuWpFJElEWv14jt+iC6cw1IHGmKK2ldbat6LbNOmr8pbA6sf9vqcWYNpB8NJcnJcosG0NVO6CoqEJbZZI1EVUKCqo91bpxxJHDQ2wbBl8/jl88UXHrdzvo6n8x80M9s84VqGo5KaeWhFJUpEWinqD0IrH9/its4A7zOMkgQZkT23+YBgzFTav6Fi3YhEccmri2iQSC8FjaiPpqdWUPlFRXg5r1kBmJmRlObfs7I7fMzKguRk2bYL162HDBufW9vv69bBzZ9dTaRsDQ4bAsGEwfLjzc9gwqK8fy+rVMHSoc5xYsRZqa6GsLPC2a1fH7w3dvJwqK8HbzWz26ahQVEpRUCsiSSrSoPaYmLZCYiI4qI33PLUJs+chgUHt8g8U1Er/E5xKHNGUPgpq++qJJ+Cb34TW1tgex9qO4HHZMv97JvLAA7E9djxlpQUXilJPbVLLC5oaUEGtiCSJSKsfvx3rhkh0tdpWqlqrAtYVpRclpjHxNu1geO2hjuVNy/XBK/1PSE9tmEJRIVP6KP24L1avhssui31A29/l5DjPoafFQ7rb43ePAXek37VLQuQWBi5rTK2IJImICkUZY7r86tQY883oNEeipaK1AktHbluhu5B0M0DSugaXQInf1MrWCys/Slx7RGIhokJRQYFuc2P3+aASlscDF1/cfcqtBJowAc44A37+c3j6aVi1Cmpq4Ac/gKy0wNRjm57h5F1L8goJaqudfw4RkQSL9CvR140xp1pra/xXGmPGAPfhpCc/Eu3GSe9VtFQELA+IIlH+9jwEStd3LK9YBKOOSFx7RKLJ64WWCHpqXW5IzwrctrkRsnJCt5Uu/eEPsHBh4Lpp05xT0dgYeGtudmKzUaNg/HgnsBs/PvD30aMhrYtP4NZWJ/V4xw5n/G3b7aOPNpGVNZaystjHEtnZztjd4uLQ29ChkJvbdQyaleVsE87//R88+vfA1OOm1nTCvIolmaSlO9PnNdT6Vlior4b8QV0+TEQk1iINaguBd40xJ1prSwGMMVcDdwCrgANj1D7ppfLWoMrHA6FIlL89D4F5T3Qsr/sc93C9TKWfCJ7bMz0LXJ0k3mRmBwa1TfUKanvoyy+dnkZ/p50Gzz8fPqjzep1bV0Frd9LTYcQI5+Zv/vx1zJ49tvc7ThJDh8J3Lgnsqa2szWBIi/O3SxLLG+QX1OKkICuoFZEEi3Se2qOACmChMeZkY8y7wO+A24GDrbVfxKqB0ju7W4KKRKUPkCJRbYaOgSEjO5Y9rQwp35Cw5ohEVUjqcRf9W8EFpFQsqkeam52042a/+GvwYJg7t/NeSperbwHtQPHdbwcGtbVNGTz2WIIaI5ELTkFWzQoRSQIRBbXW2mrgBGAx8F8gB9jHWvt7a60GaCWh4MrHg9IG2LeoxjgFo/wUl61JUGNEoiySOWrb79O0Pn3xq1/Bp58GrrvnHigpSUx7+pPhgwKD2sbWdO64Q0M0k54qIItIEoq0pxZrbTNwDnAvMAWYGKtGSd+F9NQOlOl8/O15SMDikPINoWmbIqkokiJRbUJ6alUBOVIffeQEtf6+/nU499zEtKffaQ0MahtaMlm9Gv797wS1RyKjuWpFJAlFWv34LWPMW8CbwF5AOvDftvW++ySJhIypHWiFogBG7gEFHcG829sKaz9PYINEoiR4Op/gKsf+Qqb1UU9tJBoanLRj/17DkhK4++7EtanfaQ0sFNXY6gym/dWvVKQ7qQUHtZrWR0SSQKQ9tRv9bpt96xqD1ksSqWgNqn480ApFgTOwbVpgby3LP0hMW0SiKTiFuMue2qD0YwW1EfnZz2D58sB1990HQwZg0kvMtAanHzuzBy5d6hThkiSVWxS4rJ5aEUkCEZWysNZ+C8AYkwX8CygHTlKBqORV3qKeWsBJQf7wpY7llR+BpxXcquIiKUzpxzH17rvwpz8Frrv0Ujj11MS0p98KTj/2BbUAt98OZ56paWuTktKPRSQJRXxlb4wpwikSdTiwFiiIUZskCoILRQ3IMbUAY/eEnAJnHj2AxlrYtQVKxie0WSJ9ElIoamBUP66shLffho8/dtKCs7IgMzP8T7e7d8ewFq6/3vnZZuxYuPPOqPwJ4q8ltFBUm08+gf/9D046Kd6Nkm6FBLUVYTcTEYmniIJaY8xo4FWgDmdM7c3AfGPMvcCN1tq62DVResprvSGFogalD7Dqx23cbhg2FjYs6Vinb5Ul1fWopzZ1qx/X1cF778Fbbzm3Tz5JzFjLBx+EAn2NG31BY2qHjswIWP7lL+HEE9Vbm3RCxtRWJaQZIiL+Iu2pXQgsA872BbAXGmMeB+4BTjPGfNda+79YNVJ6psZTg4eO6iY5rhyyXV1c9PZ3weN/VNRCUl1Ioaj+kX5sLSxeDC++6ASxH3wALS3dPy6WrrkG5sxJbBtiYXdDA6W1tVQ1NlLd1ERVUxNVjY3tP6ubmshKS2N8URHji4qYMGgQ4woLyU5P737nkQpKP95738CgduFCmD8fjjkmeoeUKMgpBAzgS2eor9awHhFJuEjfgd4FvmmtbW1bYa192RgzHfg98GIk+zLG/AM4Fdhprd07zP0GuAs4GagHLrHWfhJhG8UnuJd2wI6nbZOnieIlDmor4clfw5ZVsM/RcOa1TrGyWAgpFJW61Y+thS++gH/9y7mtW5foFnWYOhV+85tEtyJ6KhsbeWrpUh754gve27SpV/soyctzgtyiIkbk5ZGbkUFOejrZaWnkpKcH3NJcLpo8HppaW9t/Nvr9fvjWtRzmt++hJemcfDK8/HLHussvh1mz+vZ398W0aXDDDZCbm7g2JB23G3LyO4b1ANRVQ8EAv9YQkYSKtFDU+Z2srwWu9PXaRuIh4G7gkU7uPwmY7LsdjNMTfHCE+xaf4Ol8Bux42jbqqZV4+PBlJ6AF+OJt2PtImHJAbI7Vl/TjJOmpXbasI5BduTLyx+29t9NzN3w4NDZCU1P4n31NUx47Fm66CXJyut82mbV6vby2di2PfP45z61YQZP/HEW9UFpbS2ltLR9s2dLntv3Y7ggIaknL4OabA4PaNWucWyK99Ra8/jpkZHS/7YCRVxQY1NZWKKgVkYSKSq6ItfbdCLd7xxgzvotNzgAesdZa4ANjTJExZoS1dns02jlQBBeJGpQ2QMfTtgkpaqHxPxID29aELscqqA0pFNWT9OPE9dRaC3PnOnO9LlnS/fYAe+zhpP/OmQOzZzvBbKryeL2UNzSws66OysbGLre11tLi9dLs8dDs8dDi+/lFaSlrPvmEVq+XDLeb7LQ0sn09pVl+v9e3tPDvpUt57Msv2VGXnGUvsgn65iEtg0MPdc71W28lpk3hvPMOXH2189rV+F6fvEGw06+3X18Wi0iC9SioNcbMBKYCIblu1trOel97YhQd8+ACbPGtCwlqjTGXA5cDDB8+nPnz50fh8NFRW1ub0PYsSl8EftexTbuamL95fqKak3BDyjYxw2959+b1fJFEr5dkUVmZTmOji5KSprgeN9H/L9Fy8JZ1/v927Fj2KcuJTQS29/atFPstf7lqLeW7bdht86tL8Q+ta8p3sjiC5zsW5+WVV0r43e+mdblNerqXgw8u57DDytlvv4qA1+Py5aFzxyYTay1bGhr4uKKCDfX1VDU3U9HSQlVLCxXNzdS0thL+LPVQT7q2uzAqO5v8tDRy3W5y09Kcm9tNXloaOWlp1Le2sr2xkVLfbVdTU3AY2idZQc/Guk2b2TR/Pt/4Ri4LF+5HQ0PyjNG8/37IylrNV7+6Nez9/eV9LFJ71jYGvLut+PgDSrfWJKw9nRlo5yVV6Lwkp1Q/L5FWPy4CXgIOaVvl++n/iRSNoDZi1tq5wFyAWbNm2dmzZ8fz8F2aP38+iWzPsm3LoLRjee+xezN7ZOLak3BbRsKS/7YvDs50JfT8JIvycmd6lLfegnnznHRQgHPOgX/+M36pdon+f4kKTyu8/f8CVg1P8zA8Vn/X+jec2cJ9ZhxwIEyYEX7bsq3wyb/aF/PT3RE939E+Lw0NcMEF4e9LS4Pjj4evfx1OP91FYeFQYGjUjh1LVY2NvLl+Pa+uWcNr69axobIy0U3q0oSiIr45cyYX7bMPkwb3LF20xeNhc3U1GyorWV9Rwe6GBupbWgJuDa2t7b+3eL1kpaWR6XaT2fbT7SYrLY1nV6wgqzowRJ44dRoTD5nN7Nlw2mlO5evm5vBtiTVr4Wc/Cxzj/be/Tea00yZz/PGh2/eL97GeaNoAOzu+XJk2uoRpR86ObxushdL1ULoBbPivW1Zs38C0kV1/kYbLBWOmwZCR0W+jhDXg/l9SRKqfl0i/Br0DGAIchVM06iygCrgUOBT4epTasxUY47c82rdOekCFooIMkIniq6pg9+7O77fWCVzbgtjPPw+ci7PNU085QcY//xm7Okf9TuXO0Iuqsq3OExyLfMWeFIoKTj9O0JQ+d98N27Z1LLtccOyxcN55cNZZ0MP4Ku6stVQ2NrK9tpZtNTW8v3kzr65dy6ItW/CE+0dKIgWZmZy7115cvO++HD5mDKaXr8l0t5uJgwYxcdAgmDChT206ZPRo6p9ZGrBufU0dbXsdPhy++tU+HaLPZs6EQw+FGl8HpNcL554LixY5RcQGtEQWYNy1Gb58F5a8B7u7Hp02DWDlm93v050GF/8SxnYTAItI0oo0qD0B+AXwgW95i7V2Mc5ctfcA1wHfjEJ7XgC+Z4x5EqdAVJXG0/Zc8JjawWlJfrUYayGFoqqcq5MUj9i8Xvj0U3jpJaewyocfhg9Se+OJJ2DECPjjH6Ozv36vPMzbVHODc6GXH4Mx7X0qFBX/oLayEn7968B1118Pv/993JvSrfqWFv61ZAmflpa2B7Dba2rYXltLY2tr9zvoxqCsLIbl5jIoOxt3N8FlhttNutvt/HS5SHe7qdi1i9EjR5LmctHs8dDQ2kpDSwuNra3tvze0ttLs8bBncTEXzJjB6VOnRncqnij4xowZvPJKFvi9HJ9YuYqffMX2OuiOtunTnffC007reG+tqoLTT3emmxo0kMtV5AX98ZGOqa2vhh2bYMcG2LERdm50pigbPAKGjobiUVA82rll+b13Vexwgtgl7zmPjTZPK3z6hoJakRQWaVA7AlhnrfUYYxqBfL/7ngGejGQnxpgngNlAsTFmC3ALkA5grb0XeBlnOp81OFP6fCvC9omf8pag6sfpA7z6cXqGc2HfVvXVeqGhFnILEtuuXqiqgjfecALZV16B0tLuH9Nbf/qTE9jecEPsjtFvdNZbUL4tNkFtT+apTc8E4+roSW5tjvuckn/4A1RUdCwXFMCPfxy3w0fso61bueCZZ1jdVcpDNzLdbo4aN45jJ0xgbGEhw3JzGZqby7DcXIZkZ5PudvepjameHtbGZQwHDhsKGzu67z8r282Lq1ZxWhJ1g55yCvzud/DDH3asW7XKyTB4+WUnq2VACv6yePt6pwJ8MAtUlzkB7I6NUFMeug04va8rPwxclz/YCW6bG2Hrqmi0umtloYmBFRXO3NkNyTUTWsr78ssh7RkQ0rUdtbV8sn07n+/YQUU3BQb7qr6ujpxn3+CaU8dz5XF7xPRYsRDp23EpUOT7fSNOyvF833LEf7W19hvd3G+BqyPdn4RX0VoRsDzgqx8DnuxC3H5TmXy5qJLG/OgGtR6P0yO1e7fzQbh7d+DvlZV9m2akqQk++wyi0FkEOFmxM2d2VJYdMwZOOCEwUP7hD6GkBC68MDrH7Le6CmrHT4/+8ULSj7sIao1x0pP9p/JpanDmmYyD0lK4887AdT/6EQxJou/aWr1efvPee9w6f36vUomnDx3K8ZMmccKkSRw1blzS9Yomq2EZgZcgjbj40RtvcNLkyaQlUSbND37gVOt++OGOda+/7qy/667EtSuhgof1lG+Fl++L7jFqdju3rrjSYNLM0Pb4bN++nREjRoR/bEuT0/PbpmIHNTXw7rsdw3Q+/TR6GVDir5MaEBJGHh2zncbHvIwNXHlc3A4XNZEGte/hFIl6EXgUuMU3NU8rcDFO2rAkCc1T22HLFrj9driopZDDx3QEHtdeVsX8DYlrV6yMGQNddQQVFsIRRzhB7P9v777D2yqvB45/X0mWvB2v2Nl7h+xNgIQVCCNQ9ih7tIzSUgp00QItlEIplFUa4AellA1hpWwChEB2QkL2Thzb8d5L0v398cqWruRt2ZLs83kePZKurqTXvh469z3vOccdFxhYLF2qt/ueQb3ySkhP1wGvaEJzQW2wud2BM7V2R/PP8c1UgC4Nav/0J6j0eeveveGWW7rkrVtlT1ERP377bVYcPNjivrFRUfRNSKBPfDyDevVi/uDBnDxsGP0TIy/rIyw460x3q7CwLT+f59av57qpndQOqx2Ugqef1jO0337r3f6Pf+gU5euu6/h7uFw6E6eoSJ8ALSrSl/Lyjr92Z7DWJgZlzVl7uAzFSld/3qsdzLvVfThyxAJN1BWvq0sianPjJ5lsuDmYqrApz3PLi8hMr6SyJsKbUwvRQ7U2qL0bqC8L9yC6aNQFQCw6oL05+EMT7VHpqqTa7f3AG6WiiLfGh3BEoZGXp9fwPfmknuE86bxepscz4opDMq5gi4/XVWMXLoRTT4W+HSzeOHkyLFkCp5wCdZ7Pm06nLtiybBlMm9bREXdTja2pBT17EWx1fi2Xohxg0WcyNmzQ66CTk/UH7fHjPfsE9KqtpCvs2aN7e/r6/e/1z22oGYbBCxs3cvP//kd5IyV2r5o0iROGDm0IYvskJJBgt4fNes9uwWn+vld7Giv8YdkyLj7qKOK7qgR7Kzgc8PbbMH06+J7/uOEG/TtXVTWDmGYSJppSU6OD2JKIa5+ewvCrRjFnQNvaS9W6bGzJ68/3uYPZdGQg3+cOprg6jlGpWYxOy2JM2iHGpB9ieEo2Nos5tWn5gdG8vPkY3tgyhyMVvYLyVey7+WuGp3jTk4YlHWHTkcFBeW0hRNdqVVBrGMZuYLfndh3wS89FhJnGikT1pA9hxcV6/d4jj0BFhXd7rt8/wIz44i4cVXCNGqXXeZ12mp51DfbnvuOPhxdf1O1V6lVU6MB5xQoYHnnLLDqXy6mrHzemM2ZqmygSVVmpC9ocOqQ3P/YYnHsu3HUXHBWiCsh/+IP35AjA4MHBmdXqqILKSn7ywQe8Ud/Hykd6bCzPnnlmWK3r7Lb8gtoqdMpxTnk5D3/7LXcdd1woRtWkjAx49104+mhv9oHLpWdw9Tn+nuWMl3/D9VM/pl9iE+tkPUprYtmUO4jvcwexvaAfTnfgR89VWSNN96MsdQxLyWFM2iEcNiffHBjNwdLgt/naXZhpDmpTcgKD2t650Ks46O8tRGsoFCkxMaTHxdIrOgZLJ36kLykpJSkpkdNn9O68N+lEPbXEQbfVU9v5lJfrVLAHH9SBrT//oHbS8BKmuYI7BqV0em9Kip4pS0kx3+7VCzq61G7AABg0KCjDbdYFF+i1kD//uXdbXp5OQX7pJYhuooNMVBSMGNF1PW7DQmPtfOoV5upPvR0sDmTiH5B6AtaPPvIGtPXeeENf1t8ayyTfbOMmZmoNAw4cCE5h8E2b9M+Kr3vuaf5nwzAMPt+7lw927qS8tha3YeAyDNyei8vtbtjmcrupc7txei51LlfDbafb3UQyora/uJiCRiq/nDZiBM+eeSYZ4TCV3BP4pR/Xz9QC/PWbb7hu6lQyQ3AsDMPAAFxuN0oprEo1nByeNEmf9At1u6FwUFiVyP3Lz+2U165zR7EtfwDb8ge0vHMH7C7KNN0flpwDaXkweB8M2QeD9kF812S2CFFveEoKCzx1GuYNHkSCo4UlRkGybNmqiC5E2GxQq5RKAOagKxQvMwyjXCk1CvgjMAHIA/5hGMZbnT1Q0Tr+62m7Uzufujr9gXvPnsDLjh1Nrz3q189g7sJYXU/b4+QFB0n7/XZqXC5qnE5qXC7qXB2Lcg0I+IBd5XZT5naz2+3G6XRjdSlsntYcNoul4RLlubZbrThsNqJtNhye277X2S4X23ZVU1JTQ0m1+bq0pobaFr4Gi1LYPS1CHPXXNlvDtkSHg6N692ZSZia33OIgOxseeMD7/D17dN/G5iQkGJx0kuK003RKdFM1OrqNplKPAdxOKDmi21UES8B6Wh3UvvNO00/ZdTCGSWN9NtRUUVGhi99s3Oi9fP+9dz310UeP58UX29+O9Le/NRdYGT8eLr646f235uVx68cf8+GuXe17ww6Isdl4eMECrp86tUdltoRcnXmmNjYmFqr1D01FXR13L1vGU6ef3q6XrnE62VNUxOGyMnLKyxsu2T63cysqqHY6G06Y+J5A8acAq8WCxRPk2s+YTu0HJ4I7iAWtHNUQ7bnEVOlrRw2o8KxUFGe3kxkXT1J0yx+467+lhud0k2Ho/5kGRlPLYX2erLBixWLYUG4LFsMKLivKsGC4rBhuRVO/taWlZSQmNl0/oDbBPCN1+0/3c9MZ8zCM4RgMx20YGBFQKcplGFTU1lJRV0d5bS0VtbX62nO/sq6u5RfpQvv27WPw4MGhHkab1f+cKaVMt30f64jM+HhOGDpU9wIXbdZkUKuUGgl8CvRDH6scpdQZwP889/cA44HXlVILDMP4tAvGK1oQMFMbBkHtk0/qCpGNzaC2lmFAQUHbqgdHJ9XQ59QNFI9fzpOVh/At5LZ+9zbO3NOqTlQ9kgJGpqYyeVofpp5yDGs/7M3Y9AOM732Aj3ZNpqQmrsnnlpUp3noL3vKc6poyxZsuPW1acCctw0JTRaLq5R8OblAbkH4cjdMJ773X9FNKa8zpxzffVMwTXxkYRtP/hr/5Jo2xY3Xrndtvp03rBVesCBzPn//c+LEvrq7m7mXLeHz1apwdKQ/eTlP79OGlH/2IUWlpXf7ePZ5f+vFPZs1h9bJvGu4vXreOW2bNYnQzx6a8tpZt+flszctjS14eW/Pz2ZKXx56ionZVsm5K/UnLBlO/hXFrobyDBdcsbk/wWg3W8A6eRqWmcuygQRw7aBDHDBzIoF69Qj2kFi1btrH5madtfU1NKXsbRTqtSnSq7tKaTISX5mZq7wWqgZOBMuA+YAmwHlhkGEa1UioWXRH5TnQALEIsYE1tiNOPP/gAbuzqJk3RVTBnBdUzV7LXUQdOOOL3o96bIPXF6aYMYHtBAdsLCmD6FuaXTuej458hyupif3E6Y554jCpn69Jh1q3Tl3vvhbS0wGJW5eXTTIWDevXSs7uZmY1fMjJ0qnfYCAhqFaaph4LDQBAruTaSfvzNN7ptVL3kZHj2Wf09X79er2nzFVXjajagrVddDX/8o25l8sgjes1uS997wwjsQTt7tn6uL5fbzTPr1vG7L74gv7Lr0/scViu/nD2bP8ybh73bnWmJEH5B7aVTpnH/91vZ5flhdhkGi155haHJydS6XAGX0poaDpWWhmLkWnQtRDe9nrRvQgL9EhKodbmocbmodjobMoNqnM6GWeI4u53YqFjioqKIjYoizm5vuF1/ibHZiPFcx0ZFNdx2eBrlGj6zzL6XYAT2AxITmTtwYPdMy082px9T2InN34UQnaq5oPZo4E7DMD4DUErdDPwA3GAYRjWAYRiVSqnHgKc6faSiVfyD2lC28ykrg5/+tAvfMKYSpq2BOSsgxlwhNhfzYtYMwisVJ6xZ3VxzwutEWXRq86BeeZwy7XPe3js5cN/yeKho+oNPfr6+mLXtg1L//nDbbXD99U2v7e1S/unH/YZD1k6fx4NcLKqR9GP/1OPTT4ezz4azzoIXXqsk1y8pIdHRdKEoh0NXZPW1dy8sWqSLhT36aPPFwj78UPd59PWXv5iD4WX79vHzDz9kY25uo69x3KBBXDh+PDZPumd9yqfF5+Kbwh/lm8pvtTbs25xRaWlhVV23R/JbU2t3xHD/CSdw3uuvN2zbUVDAjoLmCxF1BoVermFAo+nI9SxKMTQ5md5KMXfUKMakpzMmLY3RaWkkteIPlGEYkvIeSv5BbUme/rm0Sa9pISJNc0FtJp6Kxx71t/0/oWUDwS9JJ9qloM5vTW0IZ2p/+1tz64Ng6NPHILZ3Bbn2g5TH5kJykfcSXw5NLG8qtUXjOznbR7lYOHw40VFRDWtWoyyWDq+J8F8v6/th22ax4DaMJovb1LndpjW+9de+Z/ftVitJDgdJ0dH62vd2dDTRtuZrv7ncbtNMR43fzMfB0lLWZWezPT/ftMxpmMUcSA1a8D6oVaZtVqVwuQzI6QM7RsDOEZBVv3oheA4d0gWsHnwQfvc7uOqqEBem8p+pHTG1c4Nav/Rjwx7NkiXmXRYt0tdvbPmBW/e9z9UTD5geT3RUAgakFEJGLmTmQkYOjn75XHL0IIYcnMff/hBNcbH5G7t0KXz6qf7+N7QL8vPgg+b7p5wCxx6rb1fW1XHte+/x302bGn3uoKQkHjr5ZM4ZM0Y+6Hd3hhEwU4vNxjljxjCzXz9WZnW8HdaAxEQG9+pFZnw8mfHx9PFc118y4uOJt9sbTpr4rpn1/fnzLRzl8ll/63K7iY2KwmGztTudUn7OQ8zugIQUKPNMCBhuHdimdrA/nhCiyzX3CdgC+Fadqb/tf8oyvBeB9DBFziLT/VCtqf32W3j8cfO2yWfv45TLc0iLjSUtNpbUmBhSPdcJDkez/9wr6+p4c/d6Hl33DbubSTdLsNsZm55uuoxJS2NQUhKuP12A1a0jW7vh5oNzzoLopteG9mRlNTVszM1lXXY2a7OzGfr9FvBZTjYh1s4FQ8cxzuf7PDwlhb9/9x13fvopRt9smPcVlMfCrhFkHp5M5baBlJYG7wNcVpbOBHjgAd225sc/hhZi+uBrrJ3PiKmwzGdqNEhB7eGyMj7ctYvEDWvxrTeaXxbN3r3e+w4HzDqumsuXfMi/N24EoNTvbM/wOTth6v3gMM+U1QDPfV8IrOfse4bSf+elPPGEMq1lr62Fv/619eO+7z7P81wufvTqq3y0e3fAPrFRUfx67lx+OXs2MR0tES4ig98sLRYbWKwo4J+nn85xzz9PqX/KQCMsSjEsOZkx6emMTUvT1+npjA7iTHx9URiL1Yr8dHZDyZneoBZ0CrIEtUJEnJY+AvZTSg313Lb6bCv22ad/0EfVTWzJy+PGpUtb3K/+LHD9dX21Pd/b0TYb6XFxpMfGkh4bS++4OO/9uDgGJCaSHBMTFjO1NTVw9dXmyqckF7J+zEus39D4Wla71UpMMxFJtWemsjEWpbhw/HhunzOHCRkZTQbHVfZYYqp9AuLyYglqm5DgcDB34EDmDhyoP3xueMH0+JXDB3HljwJbOdx+9NGMTE3lkrfe0tUW4yth0kZyJm1k7KUZ/H3aRWTEJpmes3r1aqZPnw7oQmAFBbqdUE4OZGd7b+fkwO7dgamx+/bp2dr779frPy+4oAuLUfm384lPhoxBoCze7aX5OmXY3rZcaafbzXeHDrF0507+t2sXG3L0Wq8/GNmmoHbxF3mm5x01q5yj//MM+0tKGraVYv6GnDk2lZ0nXMVjK1fy3IYNlNf6zZgBbxfu4YYFS1l39UJuvlkFpBS3xoUXwuTJeobrkrfeajSgveSoo/jLiSfSPzGx7W8gIpd/UBvlDUAnZWay46ab+M7To6q+Orv/xWGz0T8xscUMFSGalZIJB3x6VhfJulohIlFL/wneaGTbEr/7flVRRL3SmhqW7dvXZe83o18/1OQjpmzPUKyp/cmdRWzd6leO/Iz3wd50cab69Ne2iLJYuHziRO6YO5fhKS0H73VRMeagtqIE0vq16T17pJKARbBQVhS4zeOs0aNZfuWVnPnKK6YiLlsKc7lk+b9YcsEFHD1wYMP2oqIKJk5s3VCOHNHrM598MjC43bkTLrlEB7bHHw8zZ8KMGTB6dCcGuf7raVP76LVYvXqbPxgVZkNmy71xSqqrWbJtG0t37eLj3bsprq4O2CcBc4XgoixzZeU1iV+AT0ALUG2xmWbaqalkeEoKj556KvfMn8+z69fzj5UrTYEwwJNr1mAAXyxbyCsvK267TZ9caI34eF2oyjAMrn//fd7YssX0+Nj0dBafcQZzBnRuH0oRppx+v8B+axgz4uNZNHp0Fw5I9FgpUixKiO6guaD2yi4bhQiK1YcPMnmKz3o7Q7E9p4yZ/ZNbLJrSUYZhsGzfPn713w2s/ceZ5gcnrYehext/YjtE22xcN2UKt82Zw4CkpJaf4FFrN1eApaKk8R2FWUle4LbypoNagMl9+rDqmmtY9MorrD7sTb/Nr6xk/gsv8PcFC7hh+vQ2ryfr3Rsefhh++Uud1rp4se5f7GvnTn15+ml9PyFBtxKaMUMHuqNGgaWZ1pKZmW3o6FDol1pc37onta85qC043GxQW+ty8eTq1dzz5ZcUNRLI+or3C2rL8jN87hkwcrvp8XHp6Tw463h492HvRp91uUnR0dw6ezY/mzmTd7Zt44alSzlSUdHw+FNr1mAYBk9cfBpnnKF47jldzbq5oqq9esEVV8CwYQa3ffwxz65fb3p8ZGoqX1x+Ob3jJFOix/KfqbVJ0S4RIlIBWYhuocmg1jCMF5p6TIQnm8N85ruuNoo5zz1P34QEFgwbRkInVtNZn5PD1/sOwHNXgdtnWiyuHE7+mBOHDuXEIUPIr6zkSGUleRUV5Hmuj1RUUOVsucVOSkwM106Zwi9mzWpXa4GAoLa8uM2v0SO1caa2Xp+EBL684gqueOcdXvvhh4btdW43N/3vfyw/eJB/nX56u4bUrx888YTun3rvvfD889DURH9ZGXzxhb60ht0Ol12mq/zGxraws/+HH9+gdtc67/Ym1tUahsEbW7Zw52efsaeo+e+pQmdjzK6thCPeZQZltT4NZPsfggRvQPqLWbO474QTiM7zq9jm3+sWXeTsnLFjGZOezvwXXjAFtv9cuxYDePK00/j5z1t/IuJPX33Nw999Z9o2IDGRT378Ywloe7qAIlES1IoQ8Z+plfRjISKSLETpRGPS0vj8sstatW9DIQpP1UX/2xV1dQ2B4JGKCm9QWFlJTnk5OwoKAoJaZ43uI3q4rIz/27AhqF9bo9ZMh0PmVMKjrljHUzdeZEo3bUxFbS11bnez+yQ6HB2aca6L8p+pLW73a/Uojc3UVpdDXa1pHVxjYqKiePmccxidmso9X31leuyVzZtZn53NHUOGMK+dQxs0CJ55RvdFvftu+O9/oYUfoxbV1urXXLsW3n5bv0eTAtKP+5qv6+UHBrXfHDjAbZ980rBusDGpMTEsGD6chcOHc/KwYaTHxcF//ww+tanKa71rdYfOPkJZbCx9EhJ46KSTOGnYMP2Aw289b03TfWHHpqfzxeWXM3fxYop8psGfXrsWwzB46vTTW/V7+NjKlfze70xCemwsn152GQPbkGFh4nbDpq9g63f6a1AWz0Xp6XelfLa18FrRcXqGJjnDex2b0L5xibar8w9qpQSTCJEU8xIOCnP035rmUnqEEGFHgtpOlBQdzfwhLa+jC4as0lKe2P4mH+ENHOo8QW2XKEmET08wbZp7UhVfPXYsrYlD47qgJ4vM1LZTY0Et6O9fcu8Wn25Rirvnz+eojAyueucdynyKEm0vKOCnRUVY+/fnstYurG3E8OHw4ovwyCOwciWsWuW9tLfF5fr1Om359dehyU4dfu18ntufzdLNrzGrpoDbfLZX5OynpqqK5OhodhUWcudnn/HW1q2NvmSC3c4N06dz1ujRTO/bF6v/Byu/WdayGu9M7dJ7pzJq1NTAF3X4/ew3MlPra2x6On+fOJE7tm4l12fG9l/r1mGgq9M2F9j+e+NGfvbhh6ZtSQ4HH116KSNT27nO/9AOWLoYDu9q3/NbIzrOE+RmQJ9hMOUkiJMCVp2imUJRQnSpmHiIjtcnawFcdboaclJaaMclhGgTCWq7iX6JicwamspH+73b+kb3Jjsqigr/RYfBZgAfLIRabxCdkAAvPxfTqoC2q8ia2nZqLP0YoLywVUFtvXPHjmVCRgbnvvYam454pxpr3G4uX7KEr/fv5x+nntqhli6pqbBwob6AXve5Z48ObleuhNWrmw9yCwog3+fLzc+HE0/UwfKNN2L+eW6knc/NKzdQqaysNGpNQW3tkQOkPvAAMVFR1LpcuBpZkGpViuunTuUP8+Y1n5pba15zW59+PGqUvjTKP6itrdLfnGZ+QQfFxfHF5Zcz/4UXTIHt4nXrMAyDP86b19Bzuc7lari9MSeHa997z/RaMTYbH1x8MZP79PF/m5aVFcGnL8LGVuaPd0R1BWTv0Zct38J378HpP4UxMzv/vXsaST8W4SQl03zCrChHglohIowEtd1IYV2h6f6iYZP56Oif8cXevewsLMRorrJLM2qqLGTtiMXlbDwV59D2ON7ZYc7RfOAB6B9mzZ4C0o9lprZ1mpqpbcW6Wn8jU1P57ppruGnp0oCU+GfWr2dNdjaLzziDAYmJJDocRNtsbS4m5UspGDZMXy66qOX9y8r0etolS7zbXC64+WZdHOnJJyHak8nrLsrF4tPO5zA2KpVeT55FFJUoYj2F4ZNxkYqLAmfjX8uiUaP4y4knMjqtFR+iahufqV20qJnn2KJ0H1BPn2bcLh1URDWfzTEmPZ1lV1zB/BdeIKe8vGH7M+vX84xf8aemRFksvO1X8bpVnHWw8gP48rWAr7nLVJTAq3+BCfPg1Kv1jI4IDglqRThJ9gtqC3Ng8PjQjUcI0WYS1HYjhU5zUJtsSybaZuPUESM4tR2vl58Pf/87PP44+HRmadHRR8P117fjDTuZzNS2g2E0M1Pb9qAWIDYqiucWLWLuwIHcuHQp1T5Fwjbk5DB98eKG+1alSHQ4SHA4SPRcJmZkcMvMmYxqTQDYRq6oav66uJJxExL58z3mP4//93/www/w1luwrWYP77z/X/7h8/hOvAGioRQ7DQcT8c6qjqSGb/3+5E7v25eHTj6ZY5tduOvHL3W4fk3tWWe18DxHDFSVmV+nhaAWYHRaWsOMrW9g2xoWpXjpRz9iwfDhbXoeO9fCh881WWCLMbNh6kmA0v2ADbf+WTXcei2c0cLCagP981uUq2dkinL1xT/Qqvf9Mtj7PZx5I4yY0ravRTQuoPqxrKkVISRtfYSIeBLUdiP+M7WpUe1bu5aTAw89BE89BZVN15NplN2u26yEY32FwKC2OCTjiCgVJU1/0G/HTK2vqyZPZmqfPpz+739zqKrxmTiXYVBUXW1qc7Pi4EGeXruWC8eP5/fHHtu62c0muNxuVmVl8eGuXXy4ezers7L03KoFYn88jurXz8Rd7Z1BWrUKho6rovacZfxsgPlDz04cxNvt3DprFn0TErB+Vw753jP/E6x1fOuJtYYlJ/On44/n/HHj2l78zH+mtjaGjAzdrqhZjtjAoDa+V6vecnRaGss8gW12GwLbxWecwXnjxrV6f9xuePcJ2PB544+nD4BTr4GhE1r/mm157/JiHeTu3gDL39Iz2vXKCuGle/U62wVX6pMEov3q/PvUykytCCGpgCxExJOgthvxn6lNsaW06fkHD8Jf/6qD0pqalvdvzO9/D2PGtO+5nc1pc5hTMGurobYG7F1YUCvSNDVLC+2eqfU1MTOTf06ZwvNFRbyxZUurn+c2DP67aRMvb9rUENyOSU9v1XMPl5XxkSeI/WT37ib7wlYO+wGuzoWXL4RC7wmi2pIYeP5yhl+/C3pnNWzv3X8Yuy/6mXc9bMk2+Nob1D41awoPHHMeVU4nGXFx7UurdrsD1tSW10Zz/hmtOJHkH4Q1UwG5MaPS0vjqyiv56Qcf8H1uLjaLhSiLRV9brab7SdHRXDdlStsCWoD1nzYe0EbHwfyLYdoCsFoDHw8GiwUSU/Rl0FgYMwvefhSOHDDvt+4T2LMRFt0EQ47qnLH0BFIoSoQT6VUrRMSToLYbKagzV8BJjUrFMGDbNti1S2fnNcYw4IMPdK/PpmpKpabCUc18fouKggUL4NZb2zf2LqEUxCVBmc/3qaIY7BkhG1LYa2o9LXR4prZenM3Ga+eeywsbN/Lc+vVklZVRWlNDWU0NNU01n/UwgJc3b+aVzZtNwa1hGBwuK2NnYSE7CwrYUVDAzsJCtuXns70t5ZDT8+HaxfDWj2DnSO92t5URpdHgUyfrzDnzwbfAU2o/00upwsMkRUfTzmY2mt/sVkWtA7dhbTn1GBoJatu+TnV4Sgqf/PjHbX5eqxgGrFzqt1HpNOPjL+n6KsR9hsJ1D8GyV+Gbt80pzcVH4IW7YO45cPzF4ZmaEu4C1tRK+rEIoYC2PtktFtMTQoQXCWq7kSKnOch4/P5kPnoZdu9u/2tmZsKvfqXXyDZXkDVixPsFteXFun2HaFxzQW0QZmrrKaW4YtIkrpg0ybS9xumkrLaWspoaSmtq+CEvj/u+/pof8szj8g1ux6Sns7+4uN1Vv/vEx5NXWYmzvuFtTA1c9Ap8MQ++PrZhvxEpfus9/dPX/HvVNrU+tC0aST2Oi4MTTmhif1+NVUAOJwe2whGf8u3KAlffD/1HNv2czmaLghMvhdEz4O1/QEGW+fHlb+rfkUU3SVDWVgFBrWTMiBBKSNYp8PU/lzWVerlGrLT0EiJSSFDbTZRVuCisKwKfk4pPPZCC0c5uPgMGwB13wNVXe6u9dgtxfvNksq62ec2lHwdpprY5DpsNh81GWqwOyCZmZnLh+PG8tXUrd3/5JZuPmFvqGMCWvGYC8UakxMRw8rBhnDJsGCcPG0afhATchkFeRQVZZWVklZbq6+NKWf7hapb/YzKqzmBwL/P7bDjQh0m+cW1AUJut12haOpA+20iRqAULWvk72sH04063+n/m+6Omhzag9dV/JPzkb/DZS/Dd+4BP2sumr/Ta8wvukHW2bSGFokQ4UUqf4M476N1WmCNBrRARRILaMGUYkJcHe/fqS34+lJfrliP+16Wl8P3eEka+702Pc5YmYNS1fY3S0KHw61/rtib27rjEKa6X+b5UQG5eczO1FSW6301nrXFsgkUpzh07lh+NGdNkcNscBczs359Thg3jlOHDmda3L1a/9FGLUmTEx5MRH88U396qx8PGS+AXl2VhtXh/37JKU5gzL5pnn/VpHRSbADEJ3uJMrjooKWhTb98A/j1qa2Jal3oMYO94+nGnKSuCLd+Zt81YGJqxNCXKAadcBaNnwusPmv927NkIz/8OLv6dnvERLauTlj4izKT0MQe1Rbnhc2JNCNEiCWo7UUEBfPZZy/sZhq44vGePN4jduxcqKlr/XtHDzEWinIXeIlF2u26zE99Mi8X4eFi4EC68EGzd+afCv9pruQS1zSpubtbT0B/sE9tWkCxYfIPbtz3B7Saf4DbR4WBESgojU1O916mpjEpNJakD6QcTJ8Lbz+bA+95tuwozqaqCiy+GDRvgvvs8sX5aPzi4zbtjweEOBbWH9lbh2/65vC6G005r5ZP904/DaaZ23afeAm6g1yOHaxGmweN0WvR/7tXr7upl74Fnfw0/vitwll4E8k8/lkJRItQC2vpkN76fECIsdefwJeR27oQLLuia94pKMQe1RmkKl1yie1cuWAAJCV0zjrAn6cdt4z9T64g1B0PlRSELautZlOKcsWM5e8wYtuXnU1RVxYjUVNJjY9tXYbgVkpzm9bE7C71BzF//CuvW6Srig1P7Bga1wye1+31XLzcHtVFxMaS09tsfhEJRncLlgrUfmbdNPyW8C7Sk9IGr7oP//hkOeytcU5yrA9uLfyszPC2RQlEi3EgFZCEimgS13YQt1VzR9bS5KTx4RWjGEtYCZmqLQzGKyFBXA5Wl3vvKoivC7tvs3VZWCAzr8qE1xqIUY1vZ1qfDCsxn8PeWmD8MffopjBsHH/62L8eYntd8sSi3W1cqLyzUywvqL/XLDXI/r+bs2d79kzPbsIYzXIPaHauh1OfvV5QDJs4P3XhaK74XXH4PvP4Q7Frn3V5Zqisjn/crGDk1ZMMLewFramWmVoSY9KoVIqJJUBvG4uL0GtchQ6BvX0hM1GnC8fF65tX3en1qES/6nPhOtYd29ixsBaypLQ7FKCKDf5GoxFRISjNvC2IF5Ijidwb/8l/05f92QrZPrFtZCY/8py/HnO+zo3/1XI/sbHjuOT27u39/o7sAcO0UcyDad3Ab0qjDNf14lV+BqAnHQUyElFp3xMBFv4b3njL3162rgZfvg7NuhonzQja8sBYwUytBrQixgPRjCWqFiCQS1HailBQ477zW7durlw5ehwzxBrJpaa3PwPs+qwByfd47SoLaRvmnH8ua2qb5px4npUG8XxGcLqiAHJYKzTOuI2f1Yc0auOQSWLbMu31HgXltpTv/MPUlqdxuPaP79NPw7rvgdNKieLs5qE1I7cBMbTi09Mk7BHu/N2+bfkpoxtJeVptu6ZOQAl+/4d1uuOGdJ6DfCL22WpgFFIqS9GMRYknpOiOpvid1eZEuzmfvTi0ghOi+JKjtRCNHwmuvdc17FTrNa2pTbald88aRxj/9WGZqm+Y/U5uUHljZtSfO1DrrAgtopWTS164Lw/3f/8Ftt0FxsS4g5TYUFuVpAVOcx1uv1bJjj53Fi3VxuLZIcJirH7fpw1bATG0YBLVr/NbSDhgNmUNCM5aOUApOuET/fix9hoaWP24nfLMEFt0YytGFJ//0YykUJULNaoNe6brqcb2iXMgYFLoxCSFaTYLabqKwzhzUJkdJW4lGxSaYz8RWV+gPVzJLEChgpjYd4v0yAHriTG3xEe/PD+gZOk9wabHo3s6nnQa/+AW88oqDAyVpDT1tLcrg9zflsCVvYJMvHx0NRx3lXVrgezk53i8QbUtf1ICWPiFOP66tNqfsAkw/NTRjCZYZC8Fig/ef8m7buAzmXRCYut/TOWvM9yX9WISDlD7moLYwW4JaISKEBLXdhMzUtpLFqgNb3x6TFSXygbMx/rORSWkyUwuBbR7812EBmZnw8svw4x/Dgbf7NgS1AKNSsxoNaseOheuv189Jbuqc1HtVsNbnvn+g2pyuKBTlduuiT7XVOuXWr/+vyaavzIF1XBKMnd30/pFiygmwYon358TthBXvwKlXh3RYYUcKRYlwJBWQhYhYEtR2EwV15urHsqa2GXG9JKhtjUZnamVNbWBQ23RP0oULoba2L2zY2LBtZKp3Pa7DodfdX3+97iXd4hp6/0A0FOnHhgGVZbqSs/+lMNtbAKjPMPjRLZA+oPHX8C8QNeXE7pExYbHC0Wfp4lH11n0Cx54buKa/J5OgVoQjqYAsRMSSoLYbMAwjYKY2xSZBbZPie8ERnxKz0tancf5rans1tqa2WAco4dxTNNj82vmQ2qfZ3e2Z5qB3ZOphxo6Fa6/Vs7KpbUmqqPVbU9uW9GP/favKdGDbltfIOwivPaivW5K9G56+DU6+XKcV+/6MHNwOufu895UFpi5o/TjC3cT5sOxVT8srdDXklR/A8ReHdlzhpM4//bgbnNAQkU9maoWIWM3kholIUe4up87wnvV2KAexlthmntHD+c+WSLGoQG43lPq39EnTM4O+Ka9up56160kCZmqbD2r9K99eccZhfvgBfv7zNga0EFixuE3px7EQk+C976zVabKt5XLB639rXUDr+x5LF8N//2w+ebTab5Z25DR90qS7sEXBnEXmbSs/gOowaaMUDqRQlAhH0tZHiIglQW034F8kKjUqFdWTZs7aKqCtT3FIhhHWKorB5dNjJjoOoj0nSnr6utq2BrWp5plai187IBOXEw7vbjr48U8Zbsssq8UC0042b1vxDpQWNr6/vzUfmjMcmuKf5gywcy08eQtsX61/335YYX480gtENWbKSRAT771fU6m/h0KTPrUiHPnP1Jbkmf8XCiHClqQfdwOSetxGAW19pFdtgMba+dSLT9brJ+uVFfWc6pBNtPNpVlKabhVR/8GoshSqys0BD+jg8qV7dVpudDyc83MYMdW8T8BMbRv7Jx79I1j7iR4D6BTQZS/DmS20nKkogS9eNm9LSod+w3XQ7nuJSYDvv4QP/mUeb2UpvHwf9B6oZ/jrpfSBoRPa9nVEAkcMzDwdlr3i3fbtezDzNIhyhG5c4UKCWhGO7A79P67+ZK3h1n/zW1hmIoQIPZmp7Qb8Z2qlSFQL4nqZ70tQG6ixIlH1AmZqWznT1x00086nSRZr4Gxugd9sbUUpvPhH7zrT6nL4732w7lPzfv5ratuSfgx6tn3eheZt6z+H3BZmYD97Sbe/anjfaLjmL3D+7XDCpTDpeN1jNjZRr52dOA9++ne9zd+RA+b7009pvkpyJJux0PzzUVGsv9+ikUJRsqZWhAn/v9f+2TlCiLDUTT9J9CwFTr/KxzJT27x4ST9uUWPtfOr15ArIrWjn0yi/FGRTUFtdAf+5O3CtquGGd5+AL17RxbigY+nH9aaeZB6P4YZP/t30/lm7AoPr487XAX1zkjPgij/B/It1IajG2Ow6IO6uYhNg2inmbd+8LemMLhe4XT4blM5mECIcSAVkISKSBLXdQGNrakUzAmZqi0MxivDWXPpxT15T61/5uJl2PiZNBbW11fDSnyB7T9PP/fJVeOdxPbMVMFPbxvRj0MHDSZeZt+1aB7s3Bu7rdsP/FgOGd1tqP51W26r3ssJx58HV9ze+9vioYwPTsLub2WeA1WcWsiQPNn0duvGEA//U4yh7z6qgLsKbVEAWIiJJUNsN+K+pTbYlN7GnAKRQVGv4px/38ltT66snz9S2dp2Vf1CbnwV1tfDKX+DgNvNjfYYFri/c8Dn85x5MwaXNrlOb22PUDBg41rztkxd0EOvr+2VwaId526lXtz1VtP9IuP5vuhdtPXuM7ufa3SWkwGS/2ejlbwV+r3sSST0W4UxmaoWISJLv0w0EzNTaZKa2Wf5BbWWZToeztjNA6I4CZmp90o/900570kxtWysf1/MPavMOwht/gz1+s6MDRsOP/wA5++DlP+uCUvX2bTbv257U43pK6f6xz9zh3ZazVxd4mjQfAKuzBj55xfy8UTNg+OT2vacjRhekmnISHNgKI6YEtDvqtuacpQt01a/Hzj8E21fBmFkhHVbIBBSJksJZIox0t7Y+W77VFejDaNnD6NxcKNwQ6mG0jcUKg8fBUcfJ58UwJUFtNxBQ/VgKRTXPFqWry1bXBwwGVJUFVkXuyUqOmO/7Vz/21ZNnajsS1Pqvoc0cChf/TqcUDxwNV/9Fz84W+x2Lem0tEuWv/0gYPxc2L/du+/wlGDcHohwM3rfSnJpvjYIFV3bsPevft//Ijr9OJEnJ1N/rTV95t339Joye2TPTbgOCWpmpFWHEP/24KFdnVkRiQbv1n+nlK2EmEyB3W0u7hZ8Nn+tWeAuvhcHjQz0a4ScCf0OFP2np0w5SLKppNVXmGUKLzRzINram1jDo9trTzqdeXFLj/VvrpfWHH98FMXE+2/rpwLbPsMaf05GZ2nonXGou0FNaAN+9D3kH6ZflN4t89Fmt/3pFoLk/Mt8/vAv2fB+asYRanQS1IozFJuje7PWctZGZkVScB/97NtSj6H6OHIDnf6+zrfyz2kRIyUxtNyAtfdohrpde11hPikV5lfr9kU5MNZ+hjo7Ts3Yuz7q4uhodCEc3E7R1B+1p51NPKR2kZu0MfCw5Ay67OzAtHvQJhCvuhdcf0sWcfHV0prb+vWcshG/f9W77+k3YsQaL79ealA5zz+n4+/VkGYN0+vb2Vd5t7zymC281ytDLIlxO3dfXc3tmRTmse0nv0ncYTD9V9/mNpBnfgEJRkn4swkxKH33iqV5htv5fGCkMQ1fP9+9tLoJn83LYvkYXQ5x1hpycCwMS1Ea4anc1FW5v/0grVhKtiSEcUYTwTzWWmVqv5tr5gP7wnJBsTostL+r+QW17U4/rpfYNDGoTUuGyeyCxmRNRjhi46DfwwT/NrXUyh7Tt/ZtyzLm6d2p9On5tVWDxqpOvALsEHh12zDnmoLa0QF/aIAagvgh2aT5sW6ln+meepvsDt6cidleTQlEi3CVn+gW1OZGVbrr2k8CaDbPPDN7/jQ7aunUrY8aMCfUw2mbPRti4zLytrho+fVGneZ96TftrToigkKA2whXVmVNikqOSsTTVE1J4+c+KVZSEZhzhqLl2PvXiGwlqu2PRH2cd1FRCdaUubuSrrUFt70Hm+7GJcNkfIbl3y8+1WuGMGyBjCKz5UAfIx53XtvdvSmwCHHsufPx8448POQrGzg7Oe/V0/Ufq7+feTcF93fxD8MHT8Nl/YPKJMONUPQsfrgLW1Nob30+IUEnx+/2JpArIRUfg4/8zbxs8Hk66PGzWBecWwZiJ80I9jLaZOA+mLoCliyHHrw1fwWFdAyO1X8d6bqcPgBMvDe+/32FMgtoIV+A0n+WXyset5N+rVmZqvZpr51PPf11tVxSLMgx9ttxi0YF2W/4519XqXrBZO3UAXler06adnuu6WnB6rmurdBBbXRH44dtXa9v51Js0H1Yt1bNrCSlwye8gvX/rn68UzFyoL8E2YyGs+h8U5/q9p0WffY6k1NZwd+o18Nxv9M9XsFVXwLfv6HTyUdPh6LN10bFwI0GtCHf+Jy0jpQKy2w3vPm7uaR4VDYtuCpuANqINHA3X/VXPhH/2kk/BUY+CrMaf11pH9kPhYbjuIfm/2w4S1EY4WU/bTv6FomSm1qu5dj71/Csgd0URjSWPwcYv9G17jF6jmDkEMgdDxmA9E2p36OC3OA8ObfdcdkD2Xr0uMZjaOlMb3wtu/Ieuepw+IDiFnoLFFqXPDr/xN/P2madB74GhGVN31Xsg/GIxZO/W62SbY7Xqs/4WW8PtlavXMnPOHP0zvvp/ul2H4d/z1tBpzjvWwFk36xmGcCKFokS486+AHClB7dqPAzNBTr5cZv6CyWKF6afA2Dm6Y8DaTzD1kO+o7D2w/4fISncPExLURjj/mVqpfNxK/jO1UijKq7l2PvW6eqb28G5vQAvedZ++az+VRQeaNZWdH2THxOviPG3liAnfdjbjjoaVHzR8T2vscTjmXRDiQXVTjph2f2Cpit0NvXrry+Bx+iTUmg9hzce6NZkvww3vP637H4dT5Wr/NbVRMlMrwoz/70skpB8X5cLHL5i3DZkA0xaEZjzdXVwinPFTmHoy/O+ZwFoUHbHmIwlq20GC2k7kNJxUuVtXeS7WEotVtb2Zc5HT/OFdgtpWCigUJTO1DVq7ptZXZweRvsV1mmK4O576409ZdCue6Fhd9dkRq4OJGQvNLR+6A6Xgwjvh8/9CbTUbowcxo7t9jd1RUppuzXTseboa58oPIGev9/G6ap3lcMU9eoYhHEj6sQh38cn657L+Z7W6AirLdA2CcOR26360dT5px/ZoWHSjpLF2tr7D4Or79WenqvKW929Mzl5Y8g/v/S3f6WVx/p9VRbMkqO1EWyu3csX2K1q1b4wlhinxU5iWMI3pCdMZGTOyVUFuQZ3fTK2kH7eOzNQ2zu0KrMbaWPpxV8/U7ljT8dfo1Rv6j9Lpn3aHbiNis+vrKDvYPNdRDh2wRsfpDwU96QNBXJI+8wxULlsW2rGItolywOQTYNLxeu32/57xPnZgC3z7nu41HA4CglpJPxZhxmLRKbt5B73bCrPDN6hd8yHs22zedvKV+v+e6BpJaY1/XmqN3gPhq9e9XRbcTl1R+RhppdcWEtSGiSp3Fd+UfsM3pd8AkGhNbAhwp8dPZ3D0YFQjH64LneY1tVIoqpUaq37sdkshhbIiHdjWi0lovEVIvN/Jk86cqS0t0GtMGii47kG9PXefPsOZs8+cHmazQ7/hOojtP0qn/PoH4iLiuGpq2PXGGxz6/HPqytt5RtwjcehQxlx2GcmR1laiJUrpTIKd68y9jT9/CUZMCY810gEtfWSmVoShlExzUFuUG57LRwpz4JN/m7cNnQhTTwrNeETbWSw6Tdy3C8Haj/WJyHDJsIkAEtSGqVJXKZ8Xf87nxZ8DYFd2FIFBbZ1h/nCQHCUf3FvF7tDBWn2FQLdLV7GL7eE9fv1TjxurfAxdO1PrP0vbf4RO9+k7DEbP8G6vrtStTWxRuhBTR8rqi7DidjrZ+847bHrySSpzgrO2rXDzZva99x7DzjmHiT/7GdGp3eiEoFJw5o3w5C3e6pwuJ7z9KFzzQOh/N+pqzPclqBXhyL9Y1LpPzUFuuNi5zvw7ZY/Rv/89KcuoO5h0vK6o7PJ8ri8+Ars2wMipIR1WJJFPfZ3IgoU4S8tr0ly4qHZXN7tPrdFMaxEfMlPbBnG9oNbnA3JFiQS1/u18GltPC/r7pCzeqqvV5bqiaWcUfNm+2nx/5PTG94uODc+z6KLdDLebg598wvePPUbp3r0tP6HNb2Cw+403OPDhh4z/yU8YecklWO3N/ww7q6rI37gRw+0mbcIEouLjgz+uYEhMgdOugzcf9m7L3qNT3OZfFLpxgRSKEpHBv8L93u/1JdwtuLLpE9IifMUmwPijYeMy77Y1H0lQ2wYS1HaicXHj+GrSVy3uZxgG+6r3sbp8NatKV7G2fC2lrtI2v59d2envaEPfy54uvpc5ZbW8RM/w9WStaecDOlUmvheU+aS/lxdDcpDX79TWBLYnGNVEUCu6DcMwyF6+nI2PPkrR1q2d/n515eWsf+ghdr72GlNuv51+8+Y1LPcwDIOSXbvI/uYbspcv58jatbhr9UlGa0wMA046iaGLFpExYwYq3JYvHHUMbFsJP3zj3fbVGzByGvQbEbpxBaQfy5paEYba2os8HAybDFNODPUoRHtNO8Uc1O5cq9u3yUmKVpGgNgwopRgSM4QhMUM4P/18XIaLHVU7WF22mjVla1hXvq7FKsrx1nhu6nsTcVapVtpqAetqi0MyjLDSmnY+9eKT/YLawuAHtXu/NxeVSUoPjzWBokNqioupLSmhrqKCuvJyffHcdlZUcPjrrzmypvHiYJaoKEZceCGDTj213el1ldnZjc7+lh84wFc33UTmnDkMPv108tau5fDy5VTl5jb6Oq6qKva9+y773n2XuH79GLJoEUMXLSK+fxidXDztOti/xbvu3XDrNOTr/6aLS4WCU9KPRQQYNE7/z/HPYApXcb3gzBsk7TiS9R8JGYN1vRDQf6/XfQLHXxzKUUUMCWrDkFVZGRM7hjGxY7gs4zLchpsao6bZ59iVvV0tgXq0gLY+xaEYRXhpTTufegnJkO1zvzPW1QakHk+Tf9gRrLa0lC9vvJG8deta3tmPslgYevbZjP/JT4jr27djA5kwgX7z57Pz5ZfZ9NRT1JWZ+7vmrFhBzooVbXrJiqwsNj/5JJuffJLe06cz9KyzGHzaaViiQjwLGZuoP+j+98/ebflZeu3WKVeFZkxSKEpEAluUXoO+5Vvv2vRw5YiBMbPbX31XhAelYPop8P4/vdvWfQrHnR/6WggRQL5DEcCiLMSomFAPo/uRmdpArU0/hs7vVet2BxaJktTjiLbxkUfaFdAOXLCACTffTOKQIUEbi9VuZ/TllzP4jDP4/vHH2f366xhud6ueG9evH4bL1WTRqiOrV3Nk9Wp2vvYaxy9eTFRciDNoRk6DySfC+k+92757D0bNgCHjW36+YejZquy9kLNHX+fu0wX20gfomYXMwfo6rV9gOnFFKRzcpi8HtkLWLvPjEtSKcJWQDDMXhnoUoic56lj4+AWo9WRolhfpZSTjjg7tuCKABLWi5/LvVVteEpJhhJXiNqQfd3YF5Jy95kA5KhoGt+IDuAhLlTk57H7rrTY9p8/cuUy85RZSxo7tpFFBdEoKM+66ixEXXMC6v/yF3FWrAvaxxsSQMX06febOpc/RR5MwaBCG203uypXsWbKEQ59+iqsmMJumYONGvr3zTo559NHQr7ddcKVO5/f9HX/7UZhwrG4ZYbXpa4sVrJ7roiPeILapmaqyQtiz0XvfYoP0/jrAtdp0IJt/qPmxNdY2TAgheiJHDEw4TvcerrfmIwlqW0GCWtFz+acf9/SZ2uoKqKn03rdGBc5m++rsmVr/1ONhE6WgTATb8uyzuOu8aae2mBjiBw4kKj5eX+LiGq7tSUlkzJxJ2oQJXTa+5FGjOP655zj06adsff553HV1ZMyYQZ+jjyZ9yhSsDvP6U2W10mfOHPrMmUNtaSkHPvyQ3UuWULBxo2m/Q59/zqYnnmDCzTd32dfSqOhYOOtmeP4uwNDbSvNhedtONLTI7dSzuPVrwlpij4FBnXfSQgghIs60Beagdu8mvWwkrV/oxhQBJKgVPVdA+nEYzdTW1ujCS2VFOlgsK4LKUt0MfsJxndOMu7HU4+Zmlzp7pnaHX1ArqccRq/LIEXa98YZp25Q772T4ueeGaESNU0ox4KSTGHDSSW16nj0xkeHnn8/w88+nZM8eVvzqVxRt29bw+OZ//pNeI0cycMGCYA+5bQaPh1mn69TjUOvVWwezx5yrZyaEEEJomYNhwGid6VJvzUehq4MQISSoFT1XVxaKcjkha6cO/Goq9axo/cxodQVUe67Li3UQ6ztj6u/gdjjjp8EfY1vW00LnztSWFuiemg0UjJBebZFq67PPNrTBAYjt04chZ54ZwhF1nqShQzn2scf48IILqCn0Vgf/9re/JWHgQJLHjAnh6IATLoH9P/j9frWCPVqnFPcZCplD9LU1yjMru19f5+yDsoLA5yqLfu7AMTBwtP6wJgVthBCiadMWmIPaDZ/rv9+hqlofAbo8qFVKnQI8CliBZwzD+Ivf41cADwJZnk2PG4bxTJcOUvQM/mtqK0p0QZRgV9etqYLnf9f2D5FNWfuxLiQweFxwXq+ef9uC5tbTAiSkmO8Hc6Z2x1rz/f4jAk9CiIhQlZfHrtdfN20bd+21WO3dtzhQXN++HPPII3x+1VW4nU5At//56mc/Y8GrrxKdktLCK3SiKAdc8SddeKS8CFwuXfDJ5dTXbpdnmxOi4z0B7BBIzmw8c6P3AN0Pt15lqTfIddbp4Lf/KJmNFW3idjqpzM2l4tAhaoqL2/06VT/8wIFG1rv7UjYb6ZMmEZ2a2u73ESLoxs6BD5+DKk91/uoK2PwNTD4+tOMKY10a1CqlrMATwEnAIWC1UupdwzC2+O36qmEYN3Xl2EQP5IjRMw0uzzo/Z60OQKNjg/s+y14NXkBbb+li3WfSGsQ05LYGtY2lb7tcwRmTf+rxSEk9jlRbn3/eVEQpNjOToWefHcIRdY3eU6cy7be/ZdXddzdsqzh8mOW/+AXzFy8ObVDviIGJ8zrntWMTYchR+iK6NWd1NYWbN1NbWtqh16ktK6MiK4uKrCzKs7KoOHyYypwcDJcrKONc3op9LDYbY6+9lnHXXdetT7iJCBJl1wHsine829Z8JEFtM7p6pnYGsMswjD0ASqlXgEWAf1ArROdTSs/++QZzFcXBDWrzDsHK99v+PItVjy0+Wa9djY6Djcu8jx/ZD6uXwqwzgjXStqcf26L0B9jK+g80hg5sEzs4C1VbA3u+N28bOa1jrylCorqggJ2vvGLaNvbqq3vMh8bh559P0fbtpu/BkTVrWPuXvzDjrrtCODIh2s5VW0v+xo3krlrFkVWryN+40VT8LZK5nU42P/UUBz/+mJn33kvaxImhHpIQMHWBOajN2qEnSfoMDd2YwpgyDKPr3kypc4FTDMO4xnP/x8BM31lZT/rx/UAesAP4hWEYBxt5reuA6wAyMjKmvuL3wSmUysvLiY+PD/UwhJ/GjsuUta+QWJbbcH/9pHMp6RWk6nKGwYTvl5BSdKBhU21UDAWpg3FZHThtdpw2h+dix2V1UGuPodYeR11UTEAa9OitH5GZ611f4bTaWTXjMmodwemBOXndaySVZjfc3zjhbIpSBjb7nGmr/0N8hXcN3ZqpF1KekNGm9/U/Lqn5ezhqs7eQTbUjge9mXRn8tHDRrGD8HStdsoTyTz5puG9JSiLj7rtRUT2nirXhclHw2GPU7txp2p504YXEHXNME89qmvx/CU+deVwMwwCXC6O2FqOuTl98bncqp5Paffuo2bGD2j17oJsEsc1Sirh580g44wwsDlm/2Bnk71jrTdj4tulzpFtZMFTntIgzAAXsGn4s2X3DM9tm/vz5aw3DaHSmIxwLRb0HvGwYRo1S6nrgBSBgrt0wjH8B/wKYNm2aMW/evC4dZHOWLVtGOI1HaI0el8PfgE9QO3nkUBg7OzhvuHUlfHnAtMl+1o30aW+vsakT4fGbGopI2Vy1zKncBQtu6ehItXUvme5OPO5ESO3b/HMOfgm7vUHttJFD21ylOOC4vLfV9Hj0hLnMmz+/Ta8pOq6jf8eqi4p497bbTNsm33ADo9pYWbg7qJ4yhY8uuICKrKyGbaVvvMHQAQOwJya26bW2b9vGgNGjQSni+/UjedQo7EnNtN4SXaKx3xfDMHBWNlP0D3BWVVGZk0Nlbi6VOTlU5eY23K7MzaW6oABXdTWG292Jow9P0ampxPXrR0zv3u3u85yXl0d6evNLafLWrqW6wKfAmWFQ8cUXsGMHM+++m8zZQfpM0MVcNTWU7tlD8c6dlGdl6ZohYaJs715ShwwJ9TAiQpk7mRS8nyUthhuMzv170C8mmlERGMd0dVCbBQzwud8fb0EoAAzD8C2d+Azw1y4Yl+ipGisWFQx1NfDRc+Ztg8frhf/tlZAM8y40v+7GZTD1ZF1VtCNcLigrNG9LbEXRjGBXQDYM2LHGvE1a+USkbS+8gLOqquF+dGoqw8KshU9XiU5O5tjHHuOTSy5p+J4YTifrH3ywXa+30u9+XN++JI8eTa/Ro0keNYrk0aOJ69cPJdkNIZO7ejUr7riDqtzclneOYHH9+5M0bFiHftasDgdxffsS168fcf36Ed+vH3F9+2KL6XhxsWXLlnFMCx/Oa0tKWPfQQ+x5y9yzuSIri8+vuYahZ5/NUTfcgDUI4+kstaWllOzcSfGOHZTs2kXxzp2U7d8ftHXJnWFTqAcQIZSCtIVDiIvtugyniuxsInEevauD2tXACKXUEHQweyFwse8OSqk+hmHU50CeCZinbYQIpni/GY5gtfX5ZgkUH/HeVxZYeG3HU2hnLIT1n8IRnxngD/4F1z3UsQJNZYXmM39xSa0rGx/sXrXZe8zBdVQ0DApylWfR6WqKi9nxknnmf8xVV2GLjg7RiEIvedQoZt9/P1///OdBf+2Kw4epOHyYQ59/3rAtKiGB5NGjSR4zhpRx40gZM4aEwYOxBLO4nGhU+aFDfPWzn1HXwQJK4Sg2M5PeM2aQ4bnE9wvScp0QsiclMeveexm8cCEr//AHU0YFwJ6332bP22+HaHSipzMMWLEyh9kzMomP6zlLd9qjS4NawzCcSqmbgI/QLX2eMwzjB6XUPcAawzDeBX6mlDoTcAKFwBVdOUbRwwRU8C3u+GsWH4Hl5jO+zFgIvZtfn9oqVissvE63CKqXu09XxJu5sP2v29bKx/WCPVPrP0s7bKKuACgiyvYXXzSlXUanpjLiggtCOKLwMOCkkzjqxhvZ9MQTnf5edWVlHFm9miOrvZXEbTExJI8ZQ/LYsaSMHUvikCHEpKURnZbWY4p3dTZXbS3Lb7016AGtstmwOhzYoqOxRkfr2zEx+rh18ox8bGYmGdOnkzFzJvEDB3bbDIDM2bM5bckSNv7jH2z/z3/CKl1X9Gx5+VW8u3QvVmvX/O5NvuMc2lYdJTx0+ZpawzCWAkv9tt3lc/vXwK+7elyih/JPPw7GTO1Hz+v2QPViE3XacLAMHqf71G76yrvt85dg3Jz293Jtb1Ab7Jna7X6tfCT1OOLUlpToD4Q+Rl9xRVBSCbuD8T/9KQkDB5K7enW7UgOzs7Pp06cPrupqSnbvpmTPHgxPL9yWOKuqyFu3jrx16wIesycmEp2WRnRqqg50U1NJGTeOgQsWYJViOa227oEHKPzhB9M2a0wMTX0UtURFEZORQWz9JTNTXzz3Y3r3xhYTg6UHFVcLJVtsLFPvvJNBp57KyrvuomTXrlAPqUPi+vUjafhwkoYOxRpGmTL79u1j8ODBoR6G8FN/XFKOmhDqobRLOBaKEqLr+AeBHV1Tu+d72PqteduJP4aY4FQobnDS5bB9FdRW6/s1lfDpi3DWze17vba286kXzJna0kLI3u2zQcGIqe1/PRES2196ibry8ob7jl69ZJbWh1KKwaefzuDTT2/X85ctW8YsnzWCrpoaSnbvpmj7doq2baN42zaKtm0zHYPWqC0tpba0lNI95p7aW559ljl//SvJo0a1a7w9yb6lSwNaWPU/8USOeeSRbju72V2lTZzIKa+/zrbnn2fve+9RU1jY8pNCyBIVRcLgwfQaOZJeI0aQNGIEvYYPJypMKwwXLlvGhAgsRNTdRfpxkaBW9GzBLBTlcsLSxeZtfYfDpE5olJ2Yomd/P37eu23D5zD1JBgwuvWvU1MFWTth13rz9l4hmKn1Tz3uN6L9M8+iU7jr6tj+0ksUb99OU4l5WT7rOkHP0kbFBfmkjmhgdThI8aQT1zMMg/KDBynaupXCLVso3LKFoi1bqCkubvPrl+zaxUcXXMCkW29l1KWXtrsKbXdXl5PDqoceMm2LHzCAWffeKwFthLLa7Yy77jrGXXddqIcihGgFCWpFzxbMQlGrlkL+IfO2hddCZ30InHkarP8M8nzaOC9dDNf+FSxNFIMpzoOD2/TlwDa9Hrex0vCtXlObYr5fXqzXIbXnQ1xA1eNG25CJEDEMgxV33MGBjz5q9XPsSUmMvPjilncUQaWUImHgQBIGDmTgggWAPn6V2dneIHfbNqpyc6nKz6emsLDZljHuujrWPfAAh7/+mtn33UdMCy1SehpnZSVFzzxjqvZtsduZ+/e/t7llkxBCiPaRoFb0bNHxOgB0e9a21Vbpdjytqfzrq7wYlr1q3jbpeOg/MijDbJTVpoPmF+7ybsveA3+6kEYXcBmAu3Vr71pd1MruAEdsQ+9c3E6oLIO4Nn6QqyyDPRvN20bKetpw8sO//tWmgBZg9GWXySxtmFBK6bYpffsy4MQTTY+5XS5qi4upys+nOj+f6oICDi9fzv4PPjDtl7NiBUvPOouZ995L/+M7IQMlAhmGwep778WZnW3aPu3XvyZlTAdbrQkhhGg1CWpFz2ax6EJOvmtBP/8v2NtY1ObAFm9gBzrQO/HHwRljc4YcBePmwg/LvdtaG7g2ZcZpkNq39fvHJ5u/9vKiNgW1jupSeO435uJaSemQMaj1YxCdKmvZMr5/7LE2PSdpxAhGXXppJ41IBJPFaiU6NZXo1FTwrJ0dcuaZ9J8/n1X33GOq5FtTXMxXN9/M8PPOY8rtt2OLjQ3VsMPC7jffZO+775q2DT7jDIadd16IRiSEED2TBLVCxPcyB7Xfvtvkrq0278KuWw968uU6dbeuun3PT+0HA0bBwDH6ktbGvoMJyVDg09evrKj1Aenh3UxZ9yrUVpq3H3Vsp7epEK1TsmcP39x+u6m9hT0picm//CXK1vi/EHtCAhkzZ8osbYQbdOqppE2cyLe/+Y2pNRDArtdfJ3f1ao5+8EHTet5IYRgGZfv346ysxGq3Y7Hb9bXDoa+jorBERTW7HrZo61bW/PnPpm1Jw4Yx4667ZB2tEEJ0MQlqhUhIgZy9wXu99AEw49TgvV5LktLg3Fvhvadarj5ss+viVfVBbP9RbU8V9hdQAbmVVSJ3rIXXH8LhH4wPGA3HntuxMYmgqC0t5aubb8ZZUdGwTVmtzH34YTJnzQrhyERXievbl+OffZatzz3H948/bmofVLZvHx9ffDGTb7uNkZdcEjGBnKumhuW33krWsmXN76gUUXFx2JOScPTqpa+Tkhru7/vgA9y13gwTW0wMc//+9x4/ey2EEKEgQa0QRx0DO9cG57WsNjj9J/q6K42aDiOn6QrMzbFYg1+4qj0VkNd8DB88HVikauwcOPsWiLIHb3w9SO7Klez74AMcycmMvOQSYnv3bvdrGW43K+64g7J9+0zbJ//qVxLQ9jAWq5Vx115L5uzZrLj9dsr27294zF1Xx9r77yd35Upm3nsvjl69QjfQVnA7nXzzq1+1HNACGAZ15eXUlZdTkZXV4u4z/vhHkoYN6/gghRBCtJkEtUJMOE7PNh7YakqxbDNbFAyfAn2GBG9sbaGUHkNX80+zbm622DDg85fg6zcDH5uzCE68rPOqRXdjR9au5fvHHjOliO74738Z/9OfMurSS7Ha236SoOy99yj/6ivTtiGLFsk62R4sdfx4Tn3jDdb+5S/sftP8O3zo888p3LKFox96iPTJk0M0wuYZhsGqP/6RQ599FvTXjp07t929h4UQQnScBLVCAAydoC+i7fzTj5uaqXXWwTuPwyZzoGQA6tRrYebCzhlfN5b//fd8/9hj5KxYEfCYs7KSDX/7G3veeospd95J37lzW/26+z/8kPKPPzZtSz3qKGb84Q8Rk2IqOoctNpaZ99xDn6OPZuVdd1FXXt7wWGVODp9efjkTbr6ZsVdfHVY9bQ3DYP1DD7Hn7bdN2x3JyTiSk3HV1OCurcVVW9twbbhcrXrtlHHjcJwrSyaEECKUJKgVQnRMgn+v2kaC2tICePNh2L/FvN1mZ/PokzlKAto2Kdyyhe8ff5zDX37Z4r6le/ey7Prr6X/CCUy5/Xbi+/dvdv+ibdv47ne/M22LTkvjmEcfxepoY6sr0W0NXLCAlLFjWX7bbRRu3tyw3XC52PjII+SuWsXs++8nJi0thKP02vLMM2x7/nnTtri+fTnpP/8hNiOj0ee4nU7qysupLSmhpqREXxcXm65j0tMZecklfONXSEsIIUTXkqBWCNExLc3Ubv0O3n0CqsrN22MT4eLfUrDrcKvfynC7MdzulnfsAGWxtGmGyV1XR21pKbVlZdSWluKsrMQSFYUtOhqLw4HN4Wi4tkZHY4mKwlVbi6u6Gld1Nc6amobbpvu1tbhranBWV+uZo5oaXDU1FO/Y0ex6wPSpUyneudPUhgXg0Gefkb18OWOuuoqxV18NQHVhIdUFBdQUFjbc3vXaa7iqqhqeZ7HZOOaRR5r84C96rvgBAzjpxRfZ+OijAQFjzooVLD37bHoNH97k86MSEhhw0kkMWrgQi9XaaePc+dprbHzkEdO26NRU5j/zTLM/1xabDUevXjh69SKh00YnhBAiGCSoFSJMuJ1O3HV1+trpxGjkvtGRNb+tYLjd3jS8mhpvKp7ntsVqJW3SJBKHDvWmofoXiiov0mtna6vho+dg3aeBb5TSBy79vb5uJqh1u1wUbdlCznffkbNiBfkbN+KqqQniV9w4S1QUVodDX6KjG65tDgco1RDA1pWW4vQJAEOp9/TpTLjpJnpPm0Z1YSEbH31Ur3v0+Zlx1dSw+amn+OFf/2p1auX0u+4K2zWSIvSsdjtTfvUrMmbM4Lvf/Iaa4uKGx2oKC8ldtarZ5x/67DO2PPssk37xC/oee2zQ09v3f/ghq++5x7QtKj6eeU8/TeIg6YUthBDdhQS1QnQyZ3U1u15/nawvvqC2tLRhvVb9zFt94NjaICMcJAwaRL/58+k/fz5pEydisUaBq04/WFcD+zbrFkOF2YFPHnIUnHebnqn1YxgGZQcOkPvtt+R8+y05q1YFzDh2BXddHe66OtN6wXCVNmkSE26+mYyZMxsCguiUFGbefTfDzzuPNffdR8HGjabntPZnbcRFFzHsnHOCPmbR/fQ77jhOffNNVtxxB0fWrGnTc0t27uTLG26g97RpTLr1VtImTgzKmLK/+YZv77jDdGLH6nBw3JNPkjJmTFDeQwghRHiQoFaITuKqqWHXG2+wZfFiqvLyQj2coCrbv59tzz/Ptuefx56UxOkn9Sfad4LlhbsCnuM2YNshF7tWroZXLmjYXlVVxbsxMYAublSdn9/Zw+8WUsaPZ8JNN9Fn7twmZ7dSx4/n5P/8h73vvsuGhx+muqCg1a9vHz2aqXfcEazhih4gNjOT4599ls3//CdbFi/G7WyhxZifI2vW8PHFF9P/xBOZeMstJA0d2uYx1FVUUJGVRdH27ay6+27TGOp7LPeeOrXNryuEECK8SVArRJC5amvZ89ZbbP7Xv6jKzQ31cDpdbUkJZQWJRKfFNLlPSWktK1ZmU1TceOpwW+ZDlcWi2xd1krbOmCuLhaiEBOyJidgTE7HFxuKuq/POxPuskXVVV+Ouq8NitzekM1ujo/Vtz3VDyrNnH6vd7k2F9lxSxo2j9/TprUrVVBYLQ886i/4nnMCmJ59kz9tvU1dWptcLpqYSnZJCdEqK6XbCwIHsUgpLVAhaRImIZrHZmHDTTYy+7DKKtm5tcsmE4Xaz99132ff++wGt1A59+ilZX3zB0LPOajb13VVXR8Xhw1QcOkT5oUOUZ2VRU1jY5P6z7ruPfvPmtevrEkIIEd4kqBUiSNx1dexZsoTNTz9NZXYjabctUQqr3Y6y2bDUX6KiTPc7vUWGUg2Bk++6UovdjtVupzI7m9xVq3DX1ZmeVlXd9IzMzt3FrNuYh8vVvvXA9qQkMmbOpM/s2WTOnk38gAHtep3WMgxDp4h7ija5a2q8xZtqajBcLuwJCdiTknQQGxfXpnWAhmGEpC2OPSGBqXfcweTbbsNZUUFUQkKz49jdTDEqIVpiT0wkY+bMZvfpM2cOYy6/nA2PPEL28uWmxwyXi91vvhnQD7e9pv7mNwyRPrJCCNFtSVArejRnVRX5GzaQu2oV5YcOBcwYtEX+pk1UHDrU6GPW6GhGXnQRAxcswBoTg9UTMFocDj0T5wlmI6EHaF1FBdnLl3No2TIOf/kltSUlVFUFBrXVNS5Wrskh63BFm17fYrfTe+pUMmfNInP2bHqNHt2plVH9KZ/A3t5Jrx9KFqsVe2LgemYhQiF5zBjmP/00uStXsv7hh03tgYJl/A03MOqSS4L+ukIIIcKHBLWiR3HV1pK/cSO5q1ZxZNUq8jduDJh1DCarw8HwCy5g7FVXEZOe3mnv05Wi4uIYuGABAxcswO10krd+PeWfvAm12xv2ySt1s708DcfMCYzPzCS2/pKRgcVuDhVXrVzJDM+MjkKvy5N+qEL0LBkzZ7LglVc4+PHHbHz0Ucr272/X6yibjbg+fYgfMID4fv3oM3cuA048McijFUIIEW4kqBXdXk1xMXuWLCH/3Xd549Zbu6wlzPDzz2fsNdcQ27t3p79fqFhsNjKmTydj2jRY+zHuXRtQI6eSPul40luZKm3bu1daawghUEoxcMEC+h9/PPv/9z+OrFnTbLEpZbEQk57eEMDGDxhATEZGl2Z2CCGECA8S1Ipuq2z/fra9+CJ7lizB1UW9RC02G8POOYdx111HbGZml7xnWFAKpi3AMm1BqEcihIhwlqgohpx5JkPOPDPUQxFCCBEhJKgV3YphGOSvX8/WF17g0GeftWqNbFz//mTMmEH6pElYo6Pb/d5Wu520SZO6TZqxEEIIIYQQkUCCWtEtuJ1ODn32GVuff56C779vdt/YzEx6z5hB5owZZMycSVzfvl00SiGEEEIIIUSwSVArIpqzqordb73FthdeoCIrq8n9YjIysM2axbzrryd+4MCQV6AVQgghhBBCBIcEtSIi1RQXs/OVV9j+n/9QU1TU5H7Jo0cz+oorGLhgAV+vWEGCFCQSQgghhBCiW5GgVkSUypwctr7wArtffx1nM8Wf+h57LKMvv5yMmTNlVlYIIYQQQohuTIJa0SWq8vKoq6ho9/PrysrY+eqr7HvvvSZbPFjsdoaccQajL7uMpOHD2/1eQgghhBBCiMghQa3oNIZhkL18OZueeoqCjRs77X2i4uMZceGFjLr0Uqk8LIQQQgghRA8jQa0IuoZg9sknW6xE3BHRaWmMvuwyhp9/PvaEhE57HyGEEEIIIUT4kqBWBI1hGGR/840OZjtxZjZ+4EDGXnklQxYtwupwdNr7CCGEEEIIIcKfBLU9gOF2U1NcDIbRae9RuGVLi2nG8QMGoCyWdr9HXL9+DD/3XPqfeCIWq7XdryOEEEIIIYToPiSo7eZyV6/m2zvvpDInJ2Rj6Dd/Pkf99KekjBsXsjEIIYQQQgghuicJaruxfUuX8t1vfoO7ri4k7y/BrBBCCCGEEKKzSVDbDRmGwdbnnmPDww+H5P37zZvHUTfcIMGsEEIIIYQQotNJUNvNuJ1O1t53HztffTXgMUdKSqe9r8VmI23SJMZdc40Es0IIIYQQQoguI0FtN+KsrOSbX/2KrGXLTNstNhsz//xnhpx+emgGJoQQQgghhBCdRILaTlRbWkrBpk1BeS1bXBxJQ4ZgT0pq9PGq/Hy+vPFGCjdvNm2PSkjg2EcfJWPmzKCMQwghhBBCCCHCiQS1nah0716+uO66oL5mdFoaSUOHkjh0KEnDhpE4dCi22Fi++dWvqDh0yLRvbGYm8/75T3qNGBHUMQghhBBCCCFEuJCgNsJU5+dTnZ9P7qpVze6XPHo0xz31FLG9e3fRyIQQQgghhBCi61lCPQARfH2OPpoT//1vCWiFEEIIIYQQ3Z7M1HaiqPh4MufM6fgLGQZVeXmU7duH2+lsdtehP/oRM+66C0tUVMffVwghhBBCCCHCnAS1nShp2DCOX7w4aK/nrquj/NAhSvbsoXTPHkp276bUc1tZrYy7/nrGXHklSqmgvacQQgghhBBChDMJaiOIJSqKxCFDSBwyBE44oWG7YRgSyAohhBBCCCF6JFlT2w1IQCuEEEIIIYToqSSoFUIIIYQQQggRsSSoFUIIIYQQQggRsSSoFUIIIYQQQggRsSSoFUIIIYQQQggRsSSoFUIIIYQQQggRsSSoFUIIIYQQQggRsSSoFUIIIYQQQggRsSSoFUIIIYQQQggRsSSoFUIIIYQQQggRsSSoFUIIIYQQQggRsSSoFUIIIYQQQggRsSSoFUIIIYQQQggRsSSoFUIIIYQQQggRsSSoFUIIIYQQQggRsSSoFUIIIYQQQggRsSSoFUIIIYQQQggRsZRhGKEeQ4cppfKA/aEeh480ID/UgxAB5LiEJzku4UmOS3iS4xKe5LiEJzku4UmOS3iKhOMyyDCM9MYe6BZBbbhRSq0xDGNaqMchzOS4hCc5LuFJjkt4kuMSnuS4hCc5LuFJjkt4ivTjIunHQgghhBBCCCEilgS1QgghhBBCCCEilgS1neNfoR6AaJQcl/AkxyU8yXEJT3JcwpMcl/AkxyU8yXEJTxF9XGRNrRBCCCGEEEKIiCUztUIIIYQQQgghIpYEtUGmlDpFKbVdKbVLKXVnqMfTUymlnlNKHVFKbfbZlqKU+kQptdNznRzKMfZESqkBSqkvlFJblFI/KKVu8WyXYxNCSqlopdQqpdRGz3G527N9iFJqpefv2atKKXuox9oTKaWsSqn1Sqn3PffluISYUmqfUmqTUmqDUmqNZ5v8HQsxpVQvpdQbSqltSqmtSqnZclxCSyk1yvN7Un8pVUr9XI5L6CmlfuH5n79ZKfWy57NAxP5/kaA2iJRSVuAJ4FRgLHCRUmpsaEfVYz0PnOK37U7gM8MwRgCfee6LruUEfmkYxlhgFnCj53dEjk1o1QDHG4YxEZgEnKKUmgU8APzdMIzhQBFwdeiG2KPdAmz1uS/HJTzMNwxjkk8LDPk7FnqPAh8ahjEamIj+vZHjEkKGYWz3/J5MAqYClcDbyHEJKaVUP+BnwDTDMMYDVuBCIvj/iwS1wTUD2GUYxh7DMGqBV4BFIR5Tj2QYxldAod/mRcALntsvAGd15ZgEGIaRbRjGOs/tMvQHjn7IsQkpQyv33I3yXAzgeOANz3Y5LiGglOoPnAY847mvkOMSruTvWAgppZKAY4FnAQzDqDUMoxg5LuHkBGC3YRj7keMSDmxAjFLKBsQC2UTw/xcJaoOrH3DQ5/4hzzYRHjIMw8j23M4BMkI5mJ5OKTUYmAysRI5NyHlSXDcAR4BPgN1AsWEYTs8u8vcsNB4BbgfcnvupyHEJBwbwsVJqrVLqOs82+TsWWkOAPOD/POn6zyil4pDjEk4uBF723JbjEkKGYWQBDwEH0MFsCbCWCP7/IkGt6JEMXfZbSn+HiFIqHngT+LlhGKW+j8mxCQ3DMFye9LD+6KyT0aEdkVBKnQ4cMQxjbajHIgLMNQxjCnq50Y1KqWN9H5S/YyFhA6YATxmGMRmowC+lVY5L6HjWZp4JvO7/mByXrudZw7wIfTKoLxBH4LK9iCJBbXBlAQN87vf3bBPhIVcp1QfAc30kxOPpkZRSUeiA9iXDMN7ybJZjEyY86XpfALOBXp60JJC/Z6FwNHCmUmofejnL8eg1g3JcQswzy4FhGEfQ6wNnIH/HQu0QcMgwjJWe+2+gg1w5LuHhVGCdYRi5nvtyXELrRGCvYRh5hmHUAW+h/+dE7P8XCWqDazUwwlM5zI5Os3g3xGMSXu8Cl3tuXw68E8Kx9Eie9YDPAlsNw3jY5yE5NiGklEpXSvXy3I4BTkKvd/4CONezmxyXLmYYxq8Nw+hvGMZg9P+Tzw3DuAQ5LiGllIpTSiXU3wZOBjYjf8dCyjCMHOCgUmqUZ9MJwBbkuISLi/CmHoMcl1A7AMxSSsV6PpvV/75E7P8XpWf8RbAopRai10BZgecMw/hzaEfUMymlXgbmAWlALvAHYAnwGjAQ2A+cbxiGfzEp0YmUUnOBr4FNeNcI/ga9rlaOTYgopSagC0JY0Sc7XzMM4x6l1FD0DGEKsB641DCMmtCNtOdSSs0DbjMM43Q5LqHl+f6/7blrA/5rGMaflVKpyN+xkFJKTUIXVbMDe4Ar8fxNQ45LyHhO/hwAhhqGUeLZJr8vIeZp33cBujPFeuAa9BraiPz/IkGtEEIIIYQQQoiIJenHQgghhBBCCCEilgS1QgghhBBCCCEilgS1QgghhBBCCCEilgS1QgghhBBCCCEilgS1QgghhBBCCCEilgS1QgghRBhQSi1WShlKqb+HeixCCCFEJJGWPkIIIUSIKaVigBwgETgC9DMMwxnaUQkhhBCRQWZqhRBCiNA7Cx3QLgV6A6eEdDRCCCFEBJGgVgghhAi9y4Ei4AqgynPfRCl1kVJqm1KqWim1SSl1plJqmVJqmd9+6UqpfyqlspRSNZ7nXNcVX4QQQggRCrZQD0AIIYToyZRSfYETgcWGYeQppZYAP1JKJRuGUeTZ5yTgJeBd4FYgHXgEiAZ2+LxWIrAciAH+COwFFgBPKaUchmE81kVflhBCCNFlJKgVQgghQutSwAr823P/BeAi4ALgn55tdwNbgLMNTzEMpdRmYA0+QS1wCzAIOMowjJ2ebZ8qpXoBf1BKPSVrdYUQQnQ3kn4shBBChNblwE7DML713P8UOOzZjlLKCkwD3jR8qjsahrEWPRPr6xRgJbBXKWWrvwAfAanA2E79SoQQQogQkJlaIYQQIkSUUtPQgeYDntnUem8BNymlRgIlQBS6KrK/XL/7vYHhQF0Tb5naoQELIYQQYUiCWiGEECJ06gtC3eG5+LsM+AM6SO3dyOMZwAGf+wXo4PeWJt5ve/uGKYQQQoQv6VMrhBBChIBSyo5OM94F3NnILn8HUoDBwDfolj9H+aypnYpeU/ulYRjzPNv+CNwMjDEMo7GZXSGEEKLbkaBWCCGECAGl1NnoNOMrDMN4oZHHfwI8BRyPzqz6GHgH+BeQhq5uHANsNQzjeM9zkoDv0DUz/o6emY0DRgPHGIaxqHO/KiGEEKLrSaEoIYQQIjQuB8qA15t4/GU8PWsNw/gEuAQYA7yNTlX+JZCDXnMLgGEYJcAcYKlnn4+A54BFwBed8lUIIYQQISYztUIIIUQEUkr1R6cu/9kwjHtDPR4hhBAiVCSoFUIIIcKcUioGeBjd7icfGArcji4UNc4wjOwQDk8IIYQIKal+LIQQQoQ/F5AJPI5uy1MBfA2cJwGtEEKInk5maoUQQgghhBBCRCwpFCWEEEIIIYQQImJJUCuEEEIIIYQQImJJUCuEEEIIIYQQImJJUCuEEEIIIYQQImJJUCuEEEIIIYQQImJJUCuEEEIIIYQQImL9P944rvxBgJ75AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 1152x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "data = df.copy()\n",
    "coll_name = 'Age'\n",
    "min_max = getMinMax(df)\n",
    "cond1 = data[coll_name] >= min_max[coll_name][0]\n",
    "cond2 = data[coll_name] <= min_max[coll_name][1]\n",
    "colors = [\"brown\", \"teal\", \"blue\", \"coral\", \"limegreen\"]\n",
    "plot_top5_centered_importance(clf, data, coll_name, True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "4ba1852f-858f-43d7-a7b6-a26ea08e2423",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b77fed2a-3ca6-4935-a4f3-5d358cac7c55",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "40374e6b-07b5-4021-b734-d9ad8ae1f588",
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_top5_centered_importance(model, data, col_name, absolute=False):\n",
    "    plot = plt.axes()\n",
    "    plot.figure.set_size_inches(16, 8)\n",
    "\n",
    "    if absolute:\n",
    "        title = \"Центрированный график изменения абсолютной важности переменных\"\n",
    "    else:\n",
    "        title = \"Центрированный график изменения важности переменных\"\n",
    "    plot.set_title(title, fontsize=18)\n",
    "\n",
    "    explainer = shap.TreeExplainer(model)\n",
    "\n",
    "    data_copy = data.copy()\n",
    "    if \"y\" in data.columns:\n",
    "        data_copy = data_copy.drop(\"y\", axis=1)\n",
    "\n",
    "    cols, indexes = top5_find_by_importance(explainer, data_copy)\n",
    "\n",
    "    res_vals, col_vals = top5_centered_importance(explainer, data_copy, col_name)\n",
    "\n",
    "    res_vals = np.array(res_vals)\n",
    "\n",
    "    for i in range(0, len(indexes)):\n",
    "        res = []\n",
    "\n",
    "        for j in range(0, len(res_vals)):\n",
    "            val = res_vals[j, :, indexes[i]]\n",
    "            if absolute:\n",
    "                val = np.absolute(val)\n",
    "            res.append(val.mean())\n",
    "\n",
    "        plot.plot(col_vals, res, color=colors[i], linewidth=4, label=cols[i])\n",
    "\n",
    "    plot.grid()\n",
    "    plot.set_xlabel(col_name, fontsize=16)\n",
    "    plot.set_ylabel(\"Важность переменных\", fontsize=16)\n",
    "    plot.legend()\n",
    "\n",
    "    return plot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "190806f1-ae2b-48e2-bf40-f494b7f1a09e",
   "metadata": {},
   "outputs": [],
   "source": [
    "def getMinMax(data):\n",
    "    data_copy = data.copy()\n",
    "    if \"y\" in data.columns:\n",
    "        data_copy = data_copy.drop(\"y\", axis=1)\n",
    "    ar = np.array(data_copy)\n",
    "    min_values = np.amin(ar, axis=0)\n",
    "    max_values = np.amax(ar, axis=0)\n",
    "    return {key: (v1, v2) for v1, v2, key in zip(min_values, max_values, data.columns)}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "8c0a9593-2545-45ae-8730-fc90aa3bd10c",
   "metadata": {},
   "outputs": [],
   "source": [
    "def create_variable_list(col):\n",
    "    min_val = col.min()\n",
    "    max_val = col.max()\n",
    "\n",
    "    unique = col.unique()\n",
    "\n",
    "    if len(unique) < 50:\n",
    "        col_vals = sorted(list(unique))\n",
    "    else:\n",
    "        delta = (max_val - min_val) / 100\n",
    "        col_vals = []\n",
    "        while min_val <= max_val:\n",
    "            col_vals.append(min_val)\n",
    "            min_val += delta\n",
    "    return col_vals"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "83e084d5-3f41-488b-84d9-4d141b1c8243",
   "metadata": {},
   "outputs": [],
   "source": [
    "def top5_centered_importance(explainer, data, col_name):\n",
    "    data_copy = data.copy()\n",
    "\n",
    "    col_vals = create_variable_list(data[col_name])\n",
    "    res_vals = []\n",
    "\n",
    "    for val in col_vals:\n",
    "        new_col = len(data_copy[col_name]) * [val]\n",
    "        data_copy[col_name] = new_col\n",
    "        shap_values = explainer(data_copy).values\n",
    "        res_vals.append(shap_values)\n",
    "\n",
    "    return res_vals, col_vals"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "a0385a6d-4149-4d15-94b7-535030fe5896",
   "metadata": {},
   "outputs": [],
   "source": [
    "def top5_find_by_importance(explainer, data):\n",
    "    shap_values = explainer.shap_values(data)\n",
    "\n",
    "    col_names = []\n",
    "    indexes = []\n",
    "    mean_importance = list(np.mean(np.absolute(shap_values), axis=0))\n",
    "\n",
    "    max_list = sorted(mean_importance)[-5:]\n",
    "    for max_val in max_list:\n",
    "        indexes.append(mean_importance.index(max_val))\n",
    "        col_names.append(data.columns[mean_importance.index(max_val)])\n",
    "\n",
    "    return col_names, indexes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "060d86bf-c596-4742-97af-0c7e4bc73b72",
   "metadata": {},
   "outputs": [],
   "source": [
    "def ice_plot_data_y(model, data, col_name):\n",
    "    data_copy = data.copy()\n",
    "    if \"y\" in data.columns:\n",
    "        data_copy = data_copy.drop(\"y\", axis=1)\n",
    "\n",
    "    col_vals = create_variable_list(data[col_name])\n",
    "    res_vals = []\n",
    "\n",
    "    for val in col_vals:\n",
    "        new_col = len(data_copy[col_name]) * [val]\n",
    "        data_copy[col_name] = new_col\n",
    "        predict = model.predict_proba(data_copy)[:, 1]\n",
    "        res_vals.append(predict)\n",
    "\n",
    "    return res_vals, col_vals"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "055f155f-d9c8-4484-89de-7df9cbafffb7",
   "metadata": {},
   "outputs": [],
   "source": [
    "def create_variable_list(col):\n",
    "    min_val = col.min()\n",
    "    max_val = col.max()\n",
    "\n",
    "    unique = col.unique()\n",
    "\n",
    "    if len(unique) < 50:\n",
    "        col_vals = sorted(list(unique))\n",
    "    else:\n",
    "        delta = (max_val - min_val) / 100\n",
    "        col_vals = []\n",
    "        while min_val <= max_val:\n",
    "            col_vals.append(min_val)\n",
    "            min_val += delta\n",
    "    return col_vals\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "7cb06371-2386-47a8-ab30-213ee6740f69",
   "metadata": {},
   "outputs": [],
   "source": [
    "def ice_plot_data_importance(explainer, data, col_name):\n",
    "    data_copy = data.copy()\n",
    "    if \"y\" in data.columns:\n",
    "        data_copy = data_copy.drop(\"y\", axis=1)\n",
    "\n",
    "    col_vals = create_variable_list(data[col_name])\n",
    "    res_vals = []\n",
    "\n",
    "    for val in col_vals:\n",
    "        new_col = len(data_copy[col_name]) * [val]\n",
    "        data_copy[col_name] = new_col\n",
    "\n",
    "        shap_values = np.array(explainer(data_copy).values)\n",
    "\n",
    "        res_vals.append(shap_values[:, list(data.columns).index(col_name)])\n",
    "\n",
    "    return res_vals, col_vals"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "b27ce029-ad0a-470a-9961-adf33e83e94f",
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_ice_plot(model, data, col_name, importance=False):\n",
    "    plot = plt.axes()\n",
    "\n",
    "    if importance:\n",
    "        explainer = shap.TreeExplainer(model)\n",
    "        res_vals, col_vals = ice_plot_data_importance(explainer, data, col_name)\n",
    "        y_label = f\"Важность переменной {col_name}\"\n",
    "        title = f\"с-ICE график изменения важности переменной {col_name}\"\n",
    "    else:\n",
    "        res_vals, col_vals = ice_plot_data_y(model, data, col_name)\n",
    "        y_label = \"Вероятность удачного исхода\"\n",
    "        title = f\"с-ICE график вероятности удачного исхода при изменении переменной {col_name}\"\n",
    "\n",
    "    df = pd.DataFrame(np.array(res_vals))\n",
    "    df = df.T\n",
    "    mean = df.mean()\n",
    "\n",
    "    plot.figure.set_size_inches(16, 8)\n",
    "    plot.set_title(title, fontsize=18)\n",
    "\n",
    "    for i in df.index:\n",
    "        plot.plot(col_vals, df.loc[i], color=\"black\", linewidth=0.1)\n",
    "\n",
    "    plot.plot(col_vals, mean, color=\"lime\", linewidth=6)\n",
    "\n",
    "    plot.grid()\n",
    "    plot.set_xlabel(col_name, fontsize=16)\n",
    "    plot.set_ylabel(y_label, fontsize=16)\n",
    "\n",
    "    return plot\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "c44d3fbd-ca28-4c22-b9c8-5c98465131dc",
   "metadata": {},
   "outputs": [],
   "source": [
    "def find_category_columns(data):\n",
    "    data_copy = data.copy()\n",
    "    if \"y\" in data.columns:\n",
    "        data_copy = data_copy.drop(\"y\", axis=1)\n",
    "    categorical = []\n",
    "\n",
    "    for col in data_copy.columns:\n",
    "        if len(data_copy[col].unique()) < 10:\n",
    "            categorical.append(col)\n",
    "    return categorical\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
